Repository navigation
eosllm 0.2.0
eosllm 0.2.0 — production-ready, multi-platform release pipeline
This is the first release that produces signed-or-unsigned binaries for
every supported desktop platform in a single tag-driven workflow.
It also ships the new eosllm-server HTTP/SSE daemon and the stable
--stream-jsonl CLI protocol that the companion VS Code + browser
extensions consume.
What's new
Engine portability
- New Win32 OS shim (
src/os/win32.c) —_aligned_malloc/_free,
QueryPerformanceCounter,_fseeki64. Auto-installed by
eos_init_defaults()on Windows. - WASM Phase F slots reserved (
src/os/wasm.c,
src/kernels/wasm/wasm.c) asEOS_E_UNSUPPORTEDstubs so a future
Emscripten build doesn't have to invent build-system real estate.
Multi-platform release pipeline (.github/workflows/release.yml)
- 5 build jobs in parallel + a publish aggregator
(linux x86_64,linux aarch64cross+qemu,macOS arm64+x86_64
lipo'd,windows x86_64MinGW64, source). SHA256SUMSover every artifact; optionalSHA256SUMS.minisig.- Signing is gracefully gated on secrets: missing
APPLE_DEVELOPER_ID_*/APPLE_NOTARY_*/WINDOWS_CERT_*/
MINISIGN_*cause the corresponding artifact to ship unsigned
with this note, instead of failing the whole release. See
docs/release.md
for the full secret list.
eosllm-cli --stream-jsonl (stable wire protocol)
One JSON record per token to stdout:
{"t":"<text>","i":<token_id>}
followed by a single terminator:
{"done":true,"reason":"eos|max|user|error","n_tokens":N,"ms":M,"tok_per_s":T}
Documented as a long-term contract in
docs/cli.md.
The VS Code extension and the browser extension parse this format.
eosllm-server (new binary)
Single-binary local HTTP/SSE daemon, pure C99 zero deps. Routes:
GET /healthz, GET /caps, POST /generate (SSE token stream).
Loopback bind by default; CORS default-deny with --allow-origin
allow-list. See
docs/server.md.
v1.0.0 ABI freeze candidate
docs/abi.md
now enumerates every public symbol intended to make the v1.0.0 promise,
plus the two out-of-band tooling contracts (CLI JSONL + server SSE).
⚠️ This release ships UNSIGNED
The maintainer's Apple Developer ID, Windows Authenticode cert, and
minisign key are not configured in this repo's GitHub Actions secrets
yet. As a result:
- macOS: Gatekeeper will refuse to launch on first run. Bypass
with one of:or right-click → Open the first time.xattr -dr com.apple.quarantine eosllm-cli - Windows: SmartScreen will warn on first launch. Click
More info → Run anyway. - No
SHA256SUMS.minisigis included. Verify integrity via
sha256sum --check SHA256SUMSonly.
The signing pipelines are wired and will activate the moment the
respective secrets are added — no code change required, just a re-tag.
Install
# Pick your platform (linux x86_64 example)
curl -L -o eosllm.tar.gz \
https://github.com/embeddedos-org/eosllm/releases/download/v0.2.0/eosllm-0.2.0-linux-x86_64.tar.gz
# Verify
curl -L -o SHA256SUMS \
https://github.com/embeddedos-org/eosllm/releases/download/v0.2.0/SHA256SUMS
sha256sum --check SHA256SUMS --ignore-missing
# Extract
tar xzf eosllm.tar.gz
cd eosllm-0.2.0-linux-x86_64
# Run a chat (need a Llama-class GGUF on disk)
./bin/eosllm-cli --model /path/to/model.gguf --prompt "Hello, " --max-tokens 64
# Or start the local HTTP/SSE daemon for the browser extension
./bin/eosllm-server &
curl http://127.0.0.1:7777/healthz # → ok
Reproducible build
From the source tarball:
tar xzf eosllm-0.2.0-src.tar.gz
cd eosllm-0.2.0
make all-checks # full ~5 min health gate (168/168 unit checks)
Companion extensions
- VS Code:
vscode-v0.1.0
—.vsixfor sideload. - Chrome / Edge / Brave / Firefox:
browser-v0.1.0
—.zipand.xpifor sideload.
Both run fully offline against this release's eosllm-server.
Full changelog
CHANGELOG.md
under the [Unreleased] heading documents each phase landed in this
release as a separate Added entry.