sci-misc/llama-swap
Reliable LLM model swapping proxy for llama.cpp / vllm / etc.
ChangeLog
commit 1dbbac3a88b801796cb41b36feee8e2714d3cda3
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Oct 3 11:52:35 2026 +0200
sci-misc/llama-swap: drop 259
Retention keeps the last three releases.
commit 0611e4beb2b80b2140037ee3869d70feaa21e8c9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Oct 3 11:52:28 2026 +0200
sci-misc/llama-swap: add 262
go.mod, go.sum, the UI lockfile and the Makefile are unchanged from
261, and the vendored module set in the extra-stuff bundle is
identical. The release adds a content-type middleware and a
/v1/systemone endpoint.
commit 1a237e381843d41e0b3b13edb3127e22579c9569
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Oct 1 09:09:29 2026 +0200
sci-misc/llama-swap: drop 258
Retention keeps the last three releases.
commit d6d691b646ed80de7b5f803fc6a35348ecc41cb6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Oct 1 09:09:29 2026 +0200
sci-misc/llama-swap: add 261
go.mod, go.sum and the UI's package.json and lockfile are identical to
260's, so the vendored module set in the new extra-stuff bundle is
unchanged, gopsutil fork included, and the go and nodejs floors carry
over.
commit 2acf8e980c073ef9b4cb1b58355e741fd99a4d74
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 27 09:35:38 2026 +0200
sci-misc/llama-swap: drop 256, 257
Retention keeps the last three releases: 258, 259 and 260. The dropped
go.mod patch was only used by 257; upstream fixed the duplicate require
itself in 258.
commit 5a0c6ee8dcf9ade55c49bcdb7f3f00eea017b0ed
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 27 09:35:26 2026 +0200
sci-misc/llama-swap: add 260
The extra-stuff bundle carries the 260 source with its vendored Go
modules. The release points gopsutil at a patched fork to fix a
startup crash on Apple M6 hardware, which pulls a few minor module
updates with it. No new module licence family appears, and the UI's
package.json and lockfile are unchanged from 259, so the vendored
licences and the node floor carry over.
commit 44010f11139515c4cdaec1f4e620abb06a975cb1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Sep 26 03:42:19 2026 +0200
sci-misc/llama-swap: Keyword 257 for ~arm
The Go code has no architecture-specific handling in the ebuild.
commit a727da06729a5da662c162b2bc64576f715ee573
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Sep 26 18:46:34 2026 +0200
sci-misc/llama-swap: add 259
The extra-stuff bundle carries the 259 source with its vendored Go
modules. go.mod and vendor/modules.txt are unchanged from 258, as are
the UI's package.json and lockfile, so the vendored licenses and the
node floor carry over.
It carries ~arm like 257: the Go code is no more architecture-specific.
commit a295d7dec964a75f9d1304de66f25c0c82210c95
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 25 10:57:53 2026 +0200
sci-misc/llama-swap: add 258
Upstream dropped the duplicate golang.org/x/sync require from go.mod,
so the patch that removed it is not applied. The Go module set comes
from a new extra-stuff bundle; its tag must exist before this fetches.
commit 4179eea564bf6b7982e7c78e553f0e7afb6558f6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 22 23:09:03 2026 +0200
sci-misc/llama-swap: drop 253-r1, 255-r1
Retention keeps the last two. Their extra-stuff bundles stay reachable
under their own tags for anyone still on those ebuilds.
commit 479276a16df7d2323f1e84d615710993964646cc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 22 21:38:15 2026 +0200
sci-misc/llama-swap: add 257
257 adds a Kubernetes controller under cmd/kubeswap, which brings
client-go and its dependency tail into the module graph. The binary
this ebuild builds is unchanged, but the vendored bundle grows with it.
Upstream also left golang.org/x/sync in go.mod twice, once direct and
once indirect. Go refuses any -mod=vendor build until the duplicate is
gone, and a network-sandboxed build has no other mode, so the ebuild
drops the stray line. Upstream builds from the module cache, where it
is harmless.
commit 7ab7675835af91440c84e65a4ea04e9979f11eeb
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 18 11:11:17 2026 +0200
sci-misc/llama-swap: add 256
The bundle is regenerated as usual: upstream's v256 tree with
go mod vendor over it, compressed single-threaded at -9e, under a fresh
llama-swap-256-r0-0 tag so the tag carries the revision.
Everything src_compile depends on still holds: the embed_ui tag selects
between embed.go and embed_notag.go, vite writes to
internal/server/ui_dist, and llama-swap.go still declares the version
and commit variables the -X ldflags target -- a moved symbol makes -X a
silent no-op, which is how the placeholder commit hash once shipped.
Otherwise a straight copy, revision suffix dropped since the -r1 fixes
are already in the file copied.
commit c2b717eb8e6369c9afc59e438c65f4b8ec3a0422
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Sep 16 11:13:28 2026 +0200
sci-misc/llama-swap: fix licensing, node floor and service files
LICENSE listed only MIT, but the binary statically links the vendored Go
modules, which add Apache-2.0, BSD, BSD-2 and ISC.
USE=ui builds with vite 8.1.0 and rolldown, which need node 20.19 or
newer; the unversioned nodejs dependency accepted 20.18.2 and failed in
npm ci. The binary also reported upstream's placeholder commit hash, so
main.commit is now set to the release tag.
Service files:
- supervise-daemon opens the log after dropping to LLAMA_SWAP_USER, so a
log in /var/log was never created and the daemon respawned forever
without running. The init script now creates it owned by that user.
- The OpenRC script and the systemd unit forced a group named after the
user, which fails when the primary group differs; both now use the
user's primary group.
- The systemd unit passed LLAMA_SWAP_EXTRA_OPTS as one argument, joining
multiple options and adding an empty argument when unset.
- The conf.d example suggested --log-level, which llama-swap does not
accept; the log level lives in the YAML config.
commit 43af72f350aa7ddbe3d57c6fa6e311389eb792a6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 03:50:30 2026 +0200
sci-misc/llama-swap: trim 253 comment prose
commit b9a77ab22ec503c71c5ea5907ac38a99062b5c82
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 03:44:04 2026 +0200
sci-misc/llama-swap: trim 255 comment prose
commit a3c4aae804fa890d5d26575323964385ffb3f5e2
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Sep 9 10:12:55 2026 +0200
sci-misc/llama-swap: install the real example config
Upstream left only a one-line "moved to docs/" pointer at the source root,
so both ebuilds installed a 37-byte comment as
/usr/share/llama-swap/config.example.yaml -- the very file pkg_postinst
tells users to copy as their starting config. Point doins at docs/, which
carries the ~770-line reference.
Fixed in place rather than by revision: the file is a setup-time example
that the daemon never reads, so anyone already running llama-swap has long
since written their own config and gains nothing from a rebuild, while a
revbump would force the whole Go build (and npm under USE=ui) for a
documentation file.
commit a75ba6ab8287cf74f3d3613556ef1b951322aecc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 6 09:58:13 2026 +0200
sci-misc/llama-swap: drop 252
Retention: 253 and 255 are the last two. The 252 bundle and its tag stay
in extra-stuff -- old tags remain reachable for anyone still on that
ebuild, and nothing there is pruned.
commit 4c3ec6f72b1c14f971df678ef5193b62b5dab999
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 6 09:58:02 2026 +0200
sci-misc/llama-swap: add 255
Bundle rebuilt in extra-stuff (upstream v255 + `go mod vendor`) so the build
stays network-sandbox clean.
Two things re-derived from the 255 source rather than carried over. The go
directive in go.mod rose to 1.27.1, so the BDEPEND floor rises with it. And
the UI-embedding assumptions the ebuild depends on were re-checked: ui/ and
its package-lock are present, vite still writes to
../internal/server/ui_dist, the embed_ui/!embed_ui pair is intact, and
main.version still exists for the -X ldflag to land on -- it lives in
llama-swap.go in a `package main`, not under cmd/, which is worth recording
because a grep for cmd/*/main.go finds nothing and reads like a break.
Requires the extra-stuff tag llama-swap-255-r0-0 to be pushed FIRST or the
distfile is unfetchable.
commit 6c09e0622be26eed15e6f926a3c69ccdb7820015
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 09:54:49 2026 +0200
sci-misc/llama-swap: drop 251
Down to the last two. Nothing in the tree depends on this package; it is
an end-user proxy daemon. Its extra-stuff bundle and tag stay reachable
for anyone still on the older ebuild.
commit f86e1cfc9ba1d61e7c5bc26dbacdae07eb7a47b0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 09:54:49 2026 +0200
sci-misc/llama-swap: add 253
Not a straight copy: upstream raises go.mod's language version from
1.26.1 to 1.27.0, so the BDEPEND floor moves with it. ::gentoo ships
go-1.27.1, so the floor solves.
The vendored bundle grows from 11.4 MB to 14.3 MB because the module set
goes from 80 to 125 entries. The archive shape is unchanged -- same
top-level entry set as 252 -- so that is real dependency growth rather
than a differently-rolled bundle.
Build interface re-derived rather than assumed, since the src_compile
comment rests on it: ui/ and its package-lock are still present for
npm ci, vite still writes to ../internal/server/ui_dist, the
embed_ui / !embed_ui pair in internal/server is unchanged, and
main.version still exists for the -X ldflag to land on. The comment now
carries that check's date.
commit 80f4017079436c9835142fe2da01d1b5c998babf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 1 11:34:09 2026 +0200
sci-misc/llama-swap: drop 250
Retention: keep the last two (251, 252). No ebuild depends on llama-swap
-- the only tree mentions are comments and elog text in www-apps/hollama
and sci-ml/unsloth -- so nothing pins a version.
bin/retention-audit.py cannot judge this package: it derives a version's
major series from the leading [._-]-delimited field, and llama-swap's
PVs are bare integers, so every version looks like its own series and
none is ever reported droppable. Applied the last-two rule by hand, as
the earlier llama-swap bumps did.
commit cd3db1ed0815a722f0f3c95d71309f47974f4f92
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 1 11:33:46 2026 +0200
sci-misc/llama-swap: add 252
go.mod and go.sum are UNCHANGED from 251, and the regenerated
vendor/modules.txt is byte-identical to 251's -- so this is a pure
source-content bump and the vendored bundle needed only a rebuild, not a
dependency review.
Two build-interface deltas checked rather than assumed:
- 252 adds docs/embed.go, an UNGATED //go:embed of docs/kb,
docs/config.example.yaml and docs/README.md, imported unconditionally
from llama-swap.go. All three targets do ship in the release tarball,
so a plain 'ego build' still works.
- The Makefile change is only a new eval-docs-agent target plus a .PHONE
typo fix; the -tags embed_ui contract this ebuild relies on is
unchanged.
Built with default USE (no ui): the binary reports 'version: 252'.
Bundle rebuilt per the extra-stuff recipe (GitHub archive, go mod
vendor, xz -9e -T1), 11431420 bytes.
commit b9748cb9c599dda2d8f1fcdd06ecee4e50183004
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 23 18:45:55 2026 +0200
sci-misc/llama-swap: drop 249
commit 1164b8c6d55df7c07df9fd6e970bfef1e525cce8
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 23 18:41:30 2026 +0200
sci-misc/llama-swap: add 251
commit 7eacf53bfc906ca8c9693d1da1a8972aba73746d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 17 23:27:37 2026 +0200
sci-misc/llama-swap: drop 248
commit 232cdf5d33d9986f08fc19e04fe0a5ef0f388fe7
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 17 23:27:36 2026 +0200
sci-misc/llama-swap: add 250
commit d2e1f1c8af51b540b03dec44cbf08748a21323c4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Aug 15 11:19:23 2026 +0200
sci-misc/llama-swap: avoid literal home layout in service
Keep the systemd configuration rationale portable without embedding a conventional
account path.
commit 6ac928f4208b0ad30e6175e61c14550bf6fba2b6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 10 19:29:05 2026 +0200
sci-misc/llama-swap: drop 247
commit 7da528c46ed639ea1f80f1acc57a24be54d61060
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 10 19:28:53 2026 +0200
sci-misc/llama-swap: add 249
commit b142b7e1d7673b011eaf74b5e4152eaf82439bcc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 9 12:35:36 2026 +0200
sci-misc/llama-swap: drop 246
commit 550ecbd2bf7e34799021595b6ebf9dc662e48961
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 9 12:35:27 2026 +0200
sci-misc/llama-swap: add 248
commit 0ed34eb915752b4e743aa54ecc7efa38d41bb0bb
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Aug 6 18:49:47 2026 +0200
sci-misc/llama-swap: drop 245
commit 5079e9c46f3f36fabe4d18eadfd965f68131ceba
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Aug 6 18:49:42 2026 +0200
sci-misc/llama-swap: add 247
commit a74250e868c9af5c2371ad8f4e51874af2007930
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 3 10:02:33 2026 +0200
sci-misc/llama-swap: drop 244
commit ae1d217ef8c320b52fccaf2eb368f4e42d23c034
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 3 10:02:27 2026 +0200
sci-misc/llama-swap: add 246
commit 75bad22c517328ff955b39eaad2f4c4c434e4239
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 31 10:13:06 2026 +0200
sci-misc/llama-swap: drop 243
Superseded; retention keeps the last two releases (244, 245).
commit a982ca46ef2c7ef1e9efafd0f187a891db089a6b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 31 10:13:01 2026 +0200
sci-misc/llama-swap: add 245
Upstream v245; the ebuild derives all version references from PV, so it
is copied verbatim. New vendored Go-module bundle on extra-stuff
(tag llama-swap-245-r0-0); go.mod still requires go 1.26.1.
commit 4ecff4126d9978bbdfe65a2e3222cbb010684248
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jul 28 09:50:34 2026 +0200
sci-misc/llama-swap: drop 242
Retention: 243 and 244 are the last two snapshots. The extra-stuff
bundle and its signed tag stay reachable for anyone still on 242.
commit ae6e86ebb2b4141a8bfb824810821947ab552479
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jul 28 09:50:18 2026 +0200
sci-misc/llama-swap: add 244
go.mod and go.sum are unchanged from 243 - the 243..244 diff is an
internal matrix-DSL refactor under internal/ - so the freshly vendored
tree produces a vendor/modules.txt byte-identical to 243. Rebuilt the
extra-stuff bundle from the v244 archive the same way.
commit 470a43aaeb9a83b58ed78ffd62afc9d68d4dd789
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 26 12:58:32 2026 +0200
sci-misc/llama-swap: drop 241
commit 01dbd32e9f29bf6b43fa822e731f717ebcaa891d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 26 12:58:32 2026 +0200
sci-misc/llama-swap: add 243
commit 2e7d7c1e62b55d049a225f9b32fd0d28d718221f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 25 10:59:44 2026 +0200
sci-misc/llama-swap: drop 239, 240
commit 1d021f67514e718733f4c8e4d82c77aeaf2639d4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 25 10:59:35 2026 +0200
sci-misc/llama-swap: add 242
go.mod/go.sum unchanged over 241, so the vendored module set (vendor/modules.txt) is
byte-identical; pure source-content bump. Bundle rebuilt and hosted on extra-stuff as
llama-swap-242-r0-0.
commit 56e1a801760872ae9d508f7e7f2b92a6c9de6e99
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 22 15:54:31 2026 +0200
sci-misc/llama-swap: add 241
commit 9e7877fc961f9a448f1e790ca362c0e5391a7b9e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 15 11:49:02 2026 +0200
sci-misc/llama-swap: drop 238
commit adb9803daea8692a73bbd50425501050fdf2d458
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 15 11:49:02 2026 +0200
sci-misc/llama-swap: add 240
commit 1eb927b28b3c384bb5c87694b29fae27fcee6e10
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 12 22:08:15 2026 +0200
sci-misc/llama-swap: drop 237
commit f65c72e543f160a856eba1c2222ced71c26912d3
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 12 22:07:53 2026 +0200
sci-misc/llama-swap: add 239
commit b575aa6de8f6ceb91650f9f217deb53314f9ec1c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 11 09:21:08 2026 +0200
sci-misc/llama-swap: drop 236
commit 3b489bc76a70da3272194be4c86ccce3c06ae7b9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 11 09:21:07 2026 +0200
sci-misc/llama-swap: add 238
commit 5a4260f4618961b2ea63bb5e2f67fa36458934f0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 10 15:25:51 2026 +0200
sci-misc/llama-swap: drop 235
commit de980d8a336ba6a4303b041bdda13bc9cf324a01
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 10 15:25:51 2026 +0200
sci-misc/llama-swap: add 237
commit 8f6c437156528fdb028f267c5f3d7dbbb018872a
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 8 10:31:09 2026 +0200
sci-misc/llama-swap: drop 234
commit c1dfd382d8ef39728565aaa5432c05fcb8d99dd0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 8 10:31:09 2026 +0200
sci-misc/llama-swap: add 236
commit 2213843dd46cf14fa4836c16bef6e736fe44676b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 4 10:47:28 2026 +0200
sci-misc/llama-swap: drop 233
commit db596af860c59ac53e0cadd99eed7ada7d67f58c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 4 10:47:28 2026 +0200
sci-misc/llama-swap: add 235
commit e453c62ba666c950f8edb2d22f988f679930536a
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 1 09:43:50 2026 +0200
sci-misc/llama-swap: drop 232
commit dedce0be19596501dd774a7b24960534b9bc2c11
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 1 09:43:50 2026 +0200
sci-misc/llama-swap: add 234
commit 113e4d3f20966061c9db57244df301f4b65b048c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 30 10:48:34 2026 +0200
sci-misc/llama-swap: drop 230
commit 7c4e6250bd9e489c3d7769f651f0ac8a8e09ec22
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 30 10:48:34 2026 +0200
sci-misc/llama-swap: add 233
commit 1b8556b9bc612050233f6f6dd6a6582e847cdabe
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 29 09:23:28 2026 +0200
sci-misc/llama-swap: drop 228, 229
commit 7479598bcafe7a2d83e61fd6d9e7563bb05ae83c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 29 09:23:22 2026 +0200
sci-misc/llama-swap: add 232
commit 68f7f9a9feb6d5ea195d6e85d7e28db429015790
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 25 17:51:28 2026 +0200
sci-misc/llama-swap: add 230
commit c94782ed1bf4b3d0001979c7dd097ccc49a3fb09
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 22 11:04:39 2026 +0200
sci-misc/llama-swap: drop 225, 226
commit 1e76fda35a3da52098f74e698d5869cdef46b576
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 22 11:03:51 2026 +0200
sci-misc/llama-swap: add 229
Tracks upstream tag v229 (activity-page column, failed-request
capture, upstream.ignorePaths). go.mod/go.sum are unchanged from
228, so the vendored module set is identical; the bundle adds only
the two new internal/config/upstream.go sources. Vendored bundle
hosted on extra-stuff under tag llama-swap-229-r0-0.
commit 890a8e28f326ffad8eb3c497554f55b917bc12f1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 20 15:49:48 2026 +0200
sci-misc/llama-swap: Keyword 225 for ~arm64
commit 8d65c006954848e63aa19a4c2023313b281d1162
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 18 10:36:01 2026 +0200
sci-misc/llama-swap: Keyword 228 for ~arm64
commit cba727e66f575dbc0aa4efdbb56b7a86ed6b56bd
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jun 17 17:19:05 2026 +0200
sci-misc/llama-swap: Keyword 226 for ~arm64
Go proxy/model-swapper for llama.cpp servers; the Go toolchain targets
aarch64 natively. Architecture-independent at the source level.
commit 01ba1c8cd4a838e0b83942d5c3535a9f3d702349
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 18 08:12:13 2026 +0200
sci-misc/llama-swap: add 228
commit d5c80e5086cb2c7fb99419cff14763cc434e90d4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 14:59:40 2026 +0200
sci-misc/llama-swap: drop 220, 223, 224
commit 5762a5c6a505ea89155535c4c6faf971467f613d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 15 15:47:40 2026 +0200
sci-misc/llama-swap: add 226
commit 9fca9a65a3b6af343e7ee794e94dbbb95b953d70
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jun 14 12:34:59 2026 +0200
sci-misc/llama-swap: add 225
commit 9da24ddb97f79fe7061e5281e07f02e774f919d9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jun 10 19:49:54 2026 +0200
sci-misc/llama-swap: add 224
commit addcce6085de07582e1a16f95623567f4ffa4f71
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 6 20:09:34 2026 +0200
sci-misc/llama-swap: drop 222
commit de38c4f79f8ae72de8e33f22b8f9c3a4ea4a8bed
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 10:53:35 2026 +0200
sci-misc/llama-swap: drop 217
commit bbf67b93a88eda51efb02c849646f1664530dbc7
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 10:53:25 2026 +0200
sci-misc/llama-swap: add 223
commit 2414ee242a98fcc2f74ef360a635751eafcec09b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 1 11:59:47 2026 +0200
sci-misc/llama-swap: add 222
Two upstream commits: Unix process-group + Windows job-object handling
for clean child-process shutdown, plus an SSE goroutine race fix.
go.mod baseline 1.26.1 unchanged; golang.org/x/sys promoted from
indirect to direct (the new process-management code imports it).
commit c08854619280f171384e02f12c2b761741fcf076
Author: Raukaan Cogbrother <cogbrother@raukaan.local>
Date: Sun May 31 11:03:32 2026 +0200
sci-misc/llama-swap: add 220
Two upstream commits: load-testing TUI added (pulls bubbletea / lipgloss /
bubbles + transitive deps into go.sum) plus concurrency-middleware JSON
payload fix. go.mod baseline stays at 1.26.1.
commit 97b222aeced2669a0c84267c1de0b8a6574292e2
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed May 27 13:14:09 2026 +0200
sci-misc/llama-swap, sci-ml/fastflowlm: add openrc + systemd services
Both get supervise-daemon-driven openrc init.d/conf.d and a systemd
per-instance template (pkg@<user>.service). Runners are USE-gated
and default off; the existing manual-start flow stays the unchanged
baseline.
llama-swap openrc refuses to start until LLAMA_SWAP_USER is set;
auto-derives LLAMA_SWAP_CONFIG from that user's $HOME via getent if
unset. Listener defaults to 127.0.0.1:8080 so a fresh install doesn't
expose the LLM API to the LAN. systemd unit has no default
LLAMA_SWAP_CONFIG -- systemd's %h resolves to /root for system-
manager units and /home/%i would bake in a passwd layout we can't
promise -- so EnvironmentFile=/etc/default/llama-swap@%i is required.
fastflowlm openrc refuses to start until FLM_USER is set; rc_ulimit
'-l unlimited' (and LimitMEMLOCK=infinity in systemd) is needed
because flm mlocks NPU buffers. systemd ExecStart goes through
/bin/sh -c with $$ escapes so ${FLM_PORT:+--port "$FLM_PORT"}
parameter expansion runs in the shell -- systemd's variable parser
has no :+ semantics.
Hardening:
- llama-swap: ProtectSystem=full rather than =strict so backends
spawned by it (llama.cpp et al.) can still write to ~/.cache/.
- fastflowlm: deliberately omits ProtectKernelTunables (NPU power-
mode may touch /sys/) and MemoryDenyWriteExecute (XDNA path may
use JIT); revisit once empirically verified safe.
Service files live at files/<pkg>.service (no @) because pkgcheck
BannedCharacter rejects @ in files/* filenames; systemd_newunit's
target arg adds the @ at install.
commit 6f17f543c81c02adddb622daad1d612e41726efa
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon May 25 20:54:28 2026 +0200
sci-misc/llama-swap: new package, 217
LLM model-swapping HTTP proxy for llama.cpp / vllm / mlx-server / etc.
Single Go binary; routes OpenAI/Anthropic-compatible API requests to
the right backend and lifecycle-manages those backends on demand so a
single endpoint can serve many models without keeping them all
GPU-resident.
Source build via go-module eclass against a vendored bundle hosted
on extra-stuff (sci-misc/llama-swap/llama-swap-217.tar.xz, tag
llama-swap-217-r0-0). The bundle is the upstream v217 tag plus
`go mod vendor`, generated locally so the in-tree build is
network-sandbox-clean.
Upstream embeds a Svelte web UI via `//go:embed ui_dist`. That UI
needs npm+vite, which can't sanely be vendored alongside the Go
modules. USE=ui pulls in net-libs/nodejs and runs `npm ci && npm
run build` at compile time (with RESTRICT=network-sandbox lifted —
same shape sci-misc/llama-cpp uses for its own webui). Default
USE=-ui stubs proxy/ui_dist/ with a "rebuild with USE=ui" index.html
so the //go:embed directive is satisfied and the HTTP API still
functions standalone.
Build-verified both USE=-ui (16 MB binary) and USE=ui (20 MB binary,
adds ~4 MB embedded Svelte assets) against go 1.26.3 + nodejs 24 +
npm 11.
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Oct 3 11:52:35 2026 +0200
sci-misc/llama-swap: drop 259
Retention keeps the last three releases.
commit 0611e4beb2b80b2140037ee3869d70feaa21e8c9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Oct 3 11:52:28 2026 +0200
sci-misc/llama-swap: add 262
go.mod, go.sum, the UI lockfile and the Makefile are unchanged from
261, and the vendored module set in the extra-stuff bundle is
identical. The release adds a content-type middleware and a
/v1/systemone endpoint.
commit 1a237e381843d41e0b3b13edb3127e22579c9569
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Oct 1 09:09:29 2026 +0200
sci-misc/llama-swap: drop 258
Retention keeps the last three releases.
commit d6d691b646ed80de7b5f803fc6a35348ecc41cb6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Oct 1 09:09:29 2026 +0200
sci-misc/llama-swap: add 261
go.mod, go.sum and the UI's package.json and lockfile are identical to
260's, so the vendored module set in the new extra-stuff bundle is
unchanged, gopsutil fork included, and the go and nodejs floors carry
over.
commit 2acf8e980c073ef9b4cb1b58355e741fd99a4d74
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 27 09:35:38 2026 +0200
sci-misc/llama-swap: drop 256, 257
Retention keeps the last three releases: 258, 259 and 260. The dropped
go.mod patch was only used by 257; upstream fixed the duplicate require
itself in 258.
commit 5a0c6ee8dcf9ade55c49bcdb7f3f00eea017b0ed
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 27 09:35:26 2026 +0200
sci-misc/llama-swap: add 260
The extra-stuff bundle carries the 260 source with its vendored Go
modules. The release points gopsutil at a patched fork to fix a
startup crash on Apple M6 hardware, which pulls a few minor module
updates with it. No new module licence family appears, and the UI's
package.json and lockfile are unchanged from 259, so the vendored
licences and the node floor carry over.
commit 44010f11139515c4cdaec1f4e620abb06a975cb1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Sep 26 03:42:19 2026 +0200
sci-misc/llama-swap: Keyword 257 for ~arm
The Go code has no architecture-specific handling in the ebuild.
commit a727da06729a5da662c162b2bc64576f715ee573
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Sep 26 18:46:34 2026 +0200
sci-misc/llama-swap: add 259
The extra-stuff bundle carries the 259 source with its vendored Go
modules. go.mod and vendor/modules.txt are unchanged from 258, as are
the UI's package.json and lockfile, so the vendored licenses and the
node floor carry over.
It carries ~arm like 257: the Go code is no more architecture-specific.
commit a295d7dec964a75f9d1304de66f25c0c82210c95
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 25 10:57:53 2026 +0200
sci-misc/llama-swap: add 258
Upstream dropped the duplicate golang.org/x/sync require from go.mod,
so the patch that removed it is not applied. The Go module set comes
from a new extra-stuff bundle; its tag must exist before this fetches.
commit 4179eea564bf6b7982e7c78e553f0e7afb6558f6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 22 23:09:03 2026 +0200
sci-misc/llama-swap: drop 253-r1, 255-r1
Retention keeps the last two. Their extra-stuff bundles stay reachable
under their own tags for anyone still on those ebuilds.
commit 479276a16df7d2323f1e84d615710993964646cc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 22 21:38:15 2026 +0200
sci-misc/llama-swap: add 257
257 adds a Kubernetes controller under cmd/kubeswap, which brings
client-go and its dependency tail into the module graph. The binary
this ebuild builds is unchanged, but the vendored bundle grows with it.
Upstream also left golang.org/x/sync in go.mod twice, once direct and
once indirect. Go refuses any -mod=vendor build until the duplicate is
gone, and a network-sandboxed build has no other mode, so the ebuild
drops the stray line. Upstream builds from the module cache, where it
is harmless.
commit 7ab7675835af91440c84e65a4ea04e9979f11eeb
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 18 11:11:17 2026 +0200
sci-misc/llama-swap: add 256
The bundle is regenerated as usual: upstream's v256 tree with
go mod vendor over it, compressed single-threaded at -9e, under a fresh
llama-swap-256-r0-0 tag so the tag carries the revision.
Everything src_compile depends on still holds: the embed_ui tag selects
between embed.go and embed_notag.go, vite writes to
internal/server/ui_dist, and llama-swap.go still declares the version
and commit variables the -X ldflags target -- a moved symbol makes -X a
silent no-op, which is how the placeholder commit hash once shipped.
Otherwise a straight copy, revision suffix dropped since the -r1 fixes
are already in the file copied.
commit c2b717eb8e6369c9afc59e438c65f4b8ec3a0422
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Sep 16 11:13:28 2026 +0200
sci-misc/llama-swap: fix licensing, node floor and service files
LICENSE listed only MIT, but the binary statically links the vendored Go
modules, which add Apache-2.0, BSD, BSD-2 and ISC.
USE=ui builds with vite 8.1.0 and rolldown, which need node 20.19 or
newer; the unversioned nodejs dependency accepted 20.18.2 and failed in
npm ci. The binary also reported upstream's placeholder commit hash, so
main.commit is now set to the release tag.
Service files:
- supervise-daemon opens the log after dropping to LLAMA_SWAP_USER, so a
log in /var/log was never created and the daemon respawned forever
without running. The init script now creates it owned by that user.
- The OpenRC script and the systemd unit forced a group named after the
user, which fails when the primary group differs; both now use the
user's primary group.
- The systemd unit passed LLAMA_SWAP_EXTRA_OPTS as one argument, joining
multiple options and adding an empty argument when unset.
- The conf.d example suggested --log-level, which llama-swap does not
accept; the log level lives in the YAML config.
commit 43af72f350aa7ddbe3d57c6fa6e311389eb792a6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 03:50:30 2026 +0200
sci-misc/llama-swap: trim 253 comment prose
commit b9a77ab22ec503c71c5ea5907ac38a99062b5c82
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 03:44:04 2026 +0200
sci-misc/llama-swap: trim 255 comment prose
commit a3c4aae804fa890d5d26575323964385ffb3f5e2
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Sep 9 10:12:55 2026 +0200
sci-misc/llama-swap: install the real example config
Upstream left only a one-line "moved to docs/" pointer at the source root,
so both ebuilds installed a 37-byte comment as
/usr/share/llama-swap/config.example.yaml -- the very file pkg_postinst
tells users to copy as their starting config. Point doins at docs/, which
carries the ~770-line reference.
Fixed in place rather than by revision: the file is a setup-time example
that the daemon never reads, so anyone already running llama-swap has long
since written their own config and gains nothing from a rebuild, while a
revbump would force the whole Go build (and npm under USE=ui) for a
documentation file.
commit a75ba6ab8287cf74f3d3613556ef1b951322aecc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 6 09:58:13 2026 +0200
sci-misc/llama-swap: drop 252
Retention: 253 and 255 are the last two. The 252 bundle and its tag stay
in extra-stuff -- old tags remain reachable for anyone still on that
ebuild, and nothing there is pruned.
commit 4c3ec6f72b1c14f971df678ef5193b62b5dab999
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Sep 6 09:58:02 2026 +0200
sci-misc/llama-swap: add 255
Bundle rebuilt in extra-stuff (upstream v255 + `go mod vendor`) so the build
stays network-sandbox clean.
Two things re-derived from the 255 source rather than carried over. The go
directive in go.mod rose to 1.27.1, so the BDEPEND floor rises with it. And
the UI-embedding assumptions the ebuild depends on were re-checked: ui/ and
its package-lock are present, vite still writes to
../internal/server/ui_dist, the embed_ui/!embed_ui pair is intact, and
main.version still exists for the -X ldflag to land on -- it lives in
llama-swap.go in a `package main`, not under cmd/, which is worth recording
because a grep for cmd/*/main.go finds nothing and reads like a break.
Requires the extra-stuff tag llama-swap-255-r0-0 to be pushed FIRST or the
distfile is unfetchable.
commit 6c09e0622be26eed15e6f926a3c69ccdb7820015
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 09:54:49 2026 +0200
sci-misc/llama-swap: drop 251
Down to the last two. Nothing in the tree depends on this package; it is
an end-user proxy daemon. Its extra-stuff bundle and tag stay reachable
for anyone still on the older ebuild.
commit f86e1cfc9ba1d61e7c5bc26dbacdae07eb7a47b0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 09:54:49 2026 +0200
sci-misc/llama-swap: add 253
Not a straight copy: upstream raises go.mod's language version from
1.26.1 to 1.27.0, so the BDEPEND floor moves with it. ::gentoo ships
go-1.27.1, so the floor solves.
The vendored bundle grows from 11.4 MB to 14.3 MB because the module set
goes from 80 to 125 entries. The archive shape is unchanged -- same
top-level entry set as 252 -- so that is real dependency growth rather
than a differently-rolled bundle.
Build interface re-derived rather than assumed, since the src_compile
comment rests on it: ui/ and its package-lock are still present for
npm ci, vite still writes to ../internal/server/ui_dist, the
embed_ui / !embed_ui pair in internal/server is unchanged, and
main.version still exists for the -X ldflag to land on. The comment now
carries that check's date.
commit 80f4017079436c9835142fe2da01d1b5c998babf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 1 11:34:09 2026 +0200
sci-misc/llama-swap: drop 250
Retention: keep the last two (251, 252). No ebuild depends on llama-swap
-- the only tree mentions are comments and elog text in www-apps/hollama
and sci-ml/unsloth -- so nothing pins a version.
bin/retention-audit.py cannot judge this package: it derives a version's
major series from the leading [._-]-delimited field, and llama-swap's
PVs are bare integers, so every version looks like its own series and
none is ever reported droppable. Applied the last-two rule by hand, as
the earlier llama-swap bumps did.
commit cd3db1ed0815a722f0f3c95d71309f47974f4f92
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Sep 1 11:33:46 2026 +0200
sci-misc/llama-swap: add 252
go.mod and go.sum are UNCHANGED from 251, and the regenerated
vendor/modules.txt is byte-identical to 251's -- so this is a pure
source-content bump and the vendored bundle needed only a rebuild, not a
dependency review.
Two build-interface deltas checked rather than assumed:
- 252 adds docs/embed.go, an UNGATED //go:embed of docs/kb,
docs/config.example.yaml and docs/README.md, imported unconditionally
from llama-swap.go. All three targets do ship in the release tarball,
so a plain 'ego build' still works.
- The Makefile change is only a new eval-docs-agent target plus a .PHONE
typo fix; the -tags embed_ui contract this ebuild relies on is
unchanged.
Built with default USE (no ui): the binary reports 'version: 252'.
Bundle rebuilt per the extra-stuff recipe (GitHub archive, go mod
vendor, xz -9e -T1), 11431420 bytes.
commit b9748cb9c599dda2d8f1fcdd06ecee4e50183004
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 23 18:45:55 2026 +0200
sci-misc/llama-swap: drop 249
commit 1164b8c6d55df7c07df9fd6e970bfef1e525cce8
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 23 18:41:30 2026 +0200
sci-misc/llama-swap: add 251
commit 7eacf53bfc906ca8c9693d1da1a8972aba73746d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 17 23:27:37 2026 +0200
sci-misc/llama-swap: drop 248
commit 232cdf5d33d9986f08fc19e04fe0a5ef0f388fe7
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 17 23:27:36 2026 +0200
sci-misc/llama-swap: add 250
commit d2e1f1c8af51b540b03dec44cbf08748a21323c4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Aug 15 11:19:23 2026 +0200
sci-misc/llama-swap: avoid literal home layout in service
Keep the systemd configuration rationale portable without embedding a conventional
account path.
commit 6ac928f4208b0ad30e6175e61c14550bf6fba2b6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 10 19:29:05 2026 +0200
sci-misc/llama-swap: drop 247
commit 7da528c46ed639ea1f80f1acc57a24be54d61060
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 10 19:28:53 2026 +0200
sci-misc/llama-swap: add 249
commit b142b7e1d7673b011eaf74b5e4152eaf82439bcc
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 9 12:35:36 2026 +0200
sci-misc/llama-swap: drop 246
commit 550ecbd2bf7e34799021595b6ebf9dc662e48961
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 9 12:35:27 2026 +0200
sci-misc/llama-swap: add 248
commit 0ed34eb915752b4e743aa54ecc7efa38d41bb0bb
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Aug 6 18:49:47 2026 +0200
sci-misc/llama-swap: drop 245
commit 5079e9c46f3f36fabe4d18eadfd965f68131ceba
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Aug 6 18:49:42 2026 +0200
sci-misc/llama-swap: add 247
commit a74250e868c9af5c2371ad8f4e51874af2007930
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 3 10:02:33 2026 +0200
sci-misc/llama-swap: drop 244
commit ae1d217ef8c320b52fccaf2eb368f4e42d23c034
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Aug 3 10:02:27 2026 +0200
sci-misc/llama-swap: add 246
commit 75bad22c517328ff955b39eaad2f4c4c434e4239
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 31 10:13:06 2026 +0200
sci-misc/llama-swap: drop 243
Superseded; retention keeps the last two releases (244, 245).
commit a982ca46ef2c7ef1e9efafd0f187a891db089a6b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 31 10:13:01 2026 +0200
sci-misc/llama-swap: add 245
Upstream v245; the ebuild derives all version references from PV, so it
is copied verbatim. New vendored Go-module bundle on extra-stuff
(tag llama-swap-245-r0-0); go.mod still requires go 1.26.1.
commit 4ecff4126d9978bbdfe65a2e3222cbb010684248
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jul 28 09:50:34 2026 +0200
sci-misc/llama-swap: drop 242
Retention: 243 and 244 are the last two snapshots. The extra-stuff
bundle and its signed tag stay reachable for anyone still on 242.
commit ae6e86ebb2b4141a8bfb824810821947ab552479
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jul 28 09:50:18 2026 +0200
sci-misc/llama-swap: add 244
go.mod and go.sum are unchanged from 243 - the 243..244 diff is an
internal matrix-DSL refactor under internal/ - so the freshly vendored
tree produces a vendor/modules.txt byte-identical to 243. Rebuilt the
extra-stuff bundle from the v244 archive the same way.
commit 470a43aaeb9a83b58ed78ffd62afc9d68d4dd789
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 26 12:58:32 2026 +0200
sci-misc/llama-swap: drop 241
commit 01dbd32e9f29bf6b43fa822e731f717ebcaa891d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 26 12:58:32 2026 +0200
sci-misc/llama-swap: add 243
commit 2e7d7c1e62b55d049a225f9b32fd0d28d718221f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 25 10:59:44 2026 +0200
sci-misc/llama-swap: drop 239, 240
commit 1d021f67514e718733f4c8e4d82c77aeaf2639d4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 25 10:59:35 2026 +0200
sci-misc/llama-swap: add 242
go.mod/go.sum unchanged over 241, so the vendored module set (vendor/modules.txt) is
byte-identical; pure source-content bump. Bundle rebuilt and hosted on extra-stuff as
llama-swap-242-r0-0.
commit 56e1a801760872ae9d508f7e7f2b92a6c9de6e99
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 22 15:54:31 2026 +0200
sci-misc/llama-swap: add 241
commit 9e7877fc961f9a448f1e790ca362c0e5391a7b9e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 15 11:49:02 2026 +0200
sci-misc/llama-swap: drop 238
commit adb9803daea8692a73bbd50425501050fdf2d458
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 15 11:49:02 2026 +0200
sci-misc/llama-swap: add 240
commit 1eb927b28b3c384bb5c87694b29fae27fcee6e10
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 12 22:08:15 2026 +0200
sci-misc/llama-swap: drop 237
commit f65c72e543f160a856eba1c2222ced71c26912d3
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 12 22:07:53 2026 +0200
sci-misc/llama-swap: add 239
commit b575aa6de8f6ceb91650f9f217deb53314f9ec1c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 11 09:21:08 2026 +0200
sci-misc/llama-swap: drop 236
commit 3b489bc76a70da3272194be4c86ccce3c06ae7b9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 11 09:21:07 2026 +0200
sci-misc/llama-swap: add 238
commit 5a4260f4618961b2ea63bb5e2f67fa36458934f0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 10 15:25:51 2026 +0200
sci-misc/llama-swap: drop 235
commit de980d8a336ba6a4303b041bdda13bc9cf324a01
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 10 15:25:51 2026 +0200
sci-misc/llama-swap: add 237
commit 8f6c437156528fdb028f267c5f3d7dbbb018872a
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 8 10:31:09 2026 +0200
sci-misc/llama-swap: drop 234
commit c1dfd382d8ef39728565aaa5432c05fcb8d99dd0
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 8 10:31:09 2026 +0200
sci-misc/llama-swap: add 236
commit 2213843dd46cf14fa4836c16bef6e736fe44676b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 4 10:47:28 2026 +0200
sci-misc/llama-swap: drop 233
commit db596af860c59ac53e0cadd99eed7ada7d67f58c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jul 4 10:47:28 2026 +0200
sci-misc/llama-swap: add 235
commit e453c62ba666c950f8edb2d22f988f679930536a
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 1 09:43:50 2026 +0200
sci-misc/llama-swap: drop 232
commit dedce0be19596501dd774a7b24960534b9bc2c11
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jul 1 09:43:50 2026 +0200
sci-misc/llama-swap: add 234
commit 113e4d3f20966061c9db57244df301f4b65b048c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 30 10:48:34 2026 +0200
sci-misc/llama-swap: drop 230
commit 7c4e6250bd9e489c3d7769f651f0ac8a8e09ec22
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 30 10:48:34 2026 +0200
sci-misc/llama-swap: add 233
commit 1b8556b9bc612050233f6f6dd6a6582e847cdabe
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 29 09:23:28 2026 +0200
sci-misc/llama-swap: drop 228, 229
commit 7479598bcafe7a2d83e61fd6d9e7563bb05ae83c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 29 09:23:22 2026 +0200
sci-misc/llama-swap: add 232
commit 68f7f9a9feb6d5ea195d6e85d7e28db429015790
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 25 17:51:28 2026 +0200
sci-misc/llama-swap: add 230
commit c94782ed1bf4b3d0001979c7dd097ccc49a3fb09
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 22 11:04:39 2026 +0200
sci-misc/llama-swap: drop 225, 226
commit 1e76fda35a3da52098f74e698d5869cdef46b576
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 22 11:03:51 2026 +0200
sci-misc/llama-swap: add 229
Tracks upstream tag v229 (activity-page column, failed-request
capture, upstream.ignorePaths). go.mod/go.sum are unchanged from
228, so the vendored module set is identical; the bundle adds only
the two new internal/config/upstream.go sources. Vendored bundle
hosted on extra-stuff under tag llama-swap-229-r0-0.
commit 890a8e28f326ffad8eb3c497554f55b917bc12f1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 20 15:49:48 2026 +0200
sci-misc/llama-swap: Keyword 225 for ~arm64
commit 8d65c006954848e63aa19a4c2023313b281d1162
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 18 10:36:01 2026 +0200
sci-misc/llama-swap: Keyword 228 for ~arm64
commit cba727e66f575dbc0aa4efdbb56b7a86ed6b56bd
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jun 17 17:19:05 2026 +0200
sci-misc/llama-swap: Keyword 226 for ~arm64
Go proxy/model-swapper for llama.cpp servers; the Go toolchain targets
aarch64 natively. Architecture-independent at the source level.
commit 01ba1c8cd4a838e0b83942d5c3535a9f3d702349
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 18 08:12:13 2026 +0200
sci-misc/llama-swap: add 228
commit d5c80e5086cb2c7fb99419cff14763cc434e90d4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 14:59:40 2026 +0200
sci-misc/llama-swap: drop 220, 223, 224
commit 5762a5c6a505ea89155535c4c6faf971467f613d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 15 15:47:40 2026 +0200
sci-misc/llama-swap: add 226
commit 9fca9a65a3b6af343e7ee794e94dbbb95b953d70
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jun 14 12:34:59 2026 +0200
sci-misc/llama-swap: add 225
commit 9da24ddb97f79fe7061e5281e07f02e774f919d9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Jun 10 19:49:54 2026 +0200
sci-misc/llama-swap: add 224
commit addcce6085de07582e1a16f95623567f4ffa4f71
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 6 20:09:34 2026 +0200
sci-misc/llama-swap: drop 222
commit de38c4f79f8ae72de8e33f22b8f9c3a4ea4a8bed
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 10:53:35 2026 +0200
sci-misc/llama-swap: drop 217
commit bbf67b93a88eda51efb02c849646f1664530dbc7
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 10:53:25 2026 +0200
sci-misc/llama-swap: add 223
commit 2414ee242a98fcc2f74ef360a635751eafcec09b
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon Jun 1 11:59:47 2026 +0200
sci-misc/llama-swap: add 222
Two upstream commits: Unix process-group + Windows job-object handling
for clean child-process shutdown, plus an SSE goroutine race fix.
go.mod baseline 1.26.1 unchanged; golang.org/x/sys promoted from
indirect to direct (the new process-management code imports it).
commit c08854619280f171384e02f12c2b761741fcf076
Author: Raukaan Cogbrother <cogbrother@raukaan.local>
Date: Sun May 31 11:03:32 2026 +0200
sci-misc/llama-swap: add 220
Two upstream commits: load-testing TUI added (pulls bubbletea / lipgloss /
bubbles + transitive deps into go.sum) plus concurrency-middleware JSON
payload fix. go.mod baseline stays at 1.26.1.
commit 97b222aeced2669a0c84267c1de0b8a6574292e2
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed May 27 13:14:09 2026 +0200
sci-misc/llama-swap, sci-ml/fastflowlm: add openrc + systemd services
Both get supervise-daemon-driven openrc init.d/conf.d and a systemd
per-instance template (pkg@<user>.service). Runners are USE-gated
and default off; the existing manual-start flow stays the unchanged
baseline.
llama-swap openrc refuses to start until LLAMA_SWAP_USER is set;
auto-derives LLAMA_SWAP_CONFIG from that user's $HOME via getent if
unset. Listener defaults to 127.0.0.1:8080 so a fresh install doesn't
expose the LLM API to the LAN. systemd unit has no default
LLAMA_SWAP_CONFIG -- systemd's %h resolves to /root for system-
manager units and /home/%i would bake in a passwd layout we can't
promise -- so EnvironmentFile=/etc/default/llama-swap@%i is required.
fastflowlm openrc refuses to start until FLM_USER is set; rc_ulimit
'-l unlimited' (and LimitMEMLOCK=infinity in systemd) is needed
because flm mlocks NPU buffers. systemd ExecStart goes through
/bin/sh -c with $$ escapes so ${FLM_PORT:+--port "$FLM_PORT"}
parameter expansion runs in the shell -- systemd's variable parser
has no :+ semantics.
Hardening:
- llama-swap: ProtectSystem=full rather than =strict so backends
spawned by it (llama.cpp et al.) can still write to ~/.cache/.
- fastflowlm: deliberately omits ProtectKernelTunables (NPU power-
mode may touch /sys/) and MemoryDenyWriteExecute (XDNA path may
use JIT); revisit once empirically verified safe.
Service files live at files/<pkg>.service (no @) because pkgcheck
BannedCharacter rejects @ in files/* filenames; systemd_newunit's
target arg adds the @ at install.
commit 6f17f543c81c02adddb622daad1d612e41726efa
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Mon May 25 20:54:28 2026 +0200
sci-misc/llama-swap: new package, 217
LLM model-swapping HTTP proxy for llama.cpp / vllm / mlx-server / etc.
Single Go binary; routes OpenAI/Anthropic-compatible API requests to
the right backend and lifecycle-manages those backends on demand so a
single endpoint can serve many models without keeping them all
GPU-resident.
Source build via go-module eclass against a vendored bundle hosted
on extra-stuff (sci-misc/llama-swap/llama-swap-217.tar.xz, tag
llama-swap-217-r0-0). The bundle is the upstream v217 tag plus
`go mod vendor`, generated locally so the in-tree build is
network-sandbox-clean.
Upstream embeds a Svelte web UI via `//go:embed ui_dist`. That UI
needs npm+vite, which can't sanely be vendored alongside the Go
modules. USE=ui pulls in net-libs/nodejs and runs `npm ci && npm
run build` at compile time (with RESTRICT=network-sandbox lifted —
same shape sci-misc/llama-cpp uses for its own webui). Default
USE=-ui stubs proxy/ui_dist/ with a "rebuild with USE=ui" index.html
so the //go:embed directive is satisfied and the HTTP API still
functions standalone.
Build-verified both USE=-ui (16 MB binary) and USE=ui (20 MB binary,
adds ~4 MB embedded Svelte assets) against go 1.26.3 + nodejs 24 +
npm 11.


View
Download
Browse