Releases: Legendarylibr/SeisoLocalAI
Release list
v0.9.0 — terminal UI default, security harden, native Linux install
Summary
Changes since v0.8.0 (43 commits / PRs #464–#484).
start no longer opens a browser. The default workspace is seiso tui: a Forge-shaped terminal UI with live Hugging Face Hub search, local chat, and studio command launch. The React Forge app remains available as an opt-in API (SEISO_UI=forge start or seiso forge).
This release also clears several open dependency CVEs (PyJWT instead of python-jose/ecdsa, cryptography 50), hardens tool/KB injection defenses, and fixes native Linux install/start loops.
Project direction
Seiso stays a local-first stack: chat, fine-tune, post-train, compress, and export on your hardware. Day-to-day interaction is now the terminal UI so launch does not pay for a browser tab or the Forge SPA.
Limitations — not functional yet, do not use
Treat pay/mesh/Ark as docs / scaffolding only. Do not run them for production work, real funds, or trusted multi-node jobs:
| Surface | Flag | Status |
|---|---|---|
Sats marketplace (seiso pay) |
SEISO_ALLOW_PAY=1 |
Experimental. Faucet/sim only until settlement clients land. |
Buzz mesh (seiso mesh) |
SEISO_ALLOW_MESH=1 |
Experimental. Not ready for real multi-node jobs. |
| Ark backends | SEISO_ARK_BACKEND=bark|second|ark |
Not implemented — selecting these errors until a client is bundled. |
What's new
Terminal UI (default start) (#484)
seiso tui— Forge sidebar, Dashboard, Hub, Chat, studio pages, Settings- Hub searches Hugging Face live (catalog + GGUF repos), not only files already on disk
/search,/download N,/open N,/unload,/run configs/…start/ installer autostart launch the TUI (no browser)- Optional web API:
SEISO_UI=forge start
Security (#469, #470, #472)
- Replace python-jose/ecdsa with PyJWT
- Bump cryptography to 50.0.0 (CVE-2026-69247)
- Harden tool / knowledge-base injection defenses without content censorship
Native Linux install / start (#466, #467, #469)
- Harden the cross-machine native Linux install path
- Stop
startfrom false reinstall loops - Prefer npm for Forge UI with a safer Bun fallback
Training / review (#473, #474)
- Address 2026-08-06 full-tree review findings
- DPO cosine LR scheduler after warmup; raise code-verification test timeout floor
Housekeeping (#464, #465, #468, #471, #475, #476, #480, #482, #483)
- Dependabot: ruff 0.16.3, @xyflow/react 12.11.3, React type bumps
- Safe Python lock refresh (huggingface-hub, peft, kernels)
- Revert a broad deps bump that did not stick (#475 / #476)
- README touch-up
Full changelog: v0.8.0...v0.9.0
v0.8.0 — SEISO wordmark, −33,152 LOC, auth harden, mesh E2E
Summary
Changes since v0.7.0 (24 commits / PRs #451–#463).
Measured LOC reduction: −33,152 source lines (−18.9%) from 175,228 → 142,076.
Method: count .py / .ts / .tsx / .css / .js under seiso/, forge/, forge-ui/src/, seiso_cli/, tests/, scripts/ at tags v0.7.0 and v0.8.0 (lockfiles / dist / node_modules excluded). Cross-check: git diff --shortstat v0.7.0...v0.8.0 on those paths → 278 files changed, 4632 insertions(+), 38735 deletions(-) (net −34,103).
| Driver | Δ LOC (same method, stepwise) |
|---|---|
| Adaptive-RL-Quantization extract (#459) | −34,214 |
| Test consolidation + dead-code trim (#460–#462) | −676 |
| Auth / mesh / macOS / wordmark / other (#451–#458, #463) | +1,738 |
| Net v0.7.0 → v0.8.0 | −33,152 |
PR-local simplify nets (from those PRs' own diffs): #461 ≈ −843 LOC, #462 ≈ −360 LOC.
Project direction
Seiso stays a local-first Forge + CLI stack: chat, fine-tune, post-train, compress, and export on your hardware.
This cut ships a new SEISO wordmark as the product logo across Forge, hardens local auth crypto, extends experimental mesh worker plumbing, extracts adaptive RL quantization out of tree, and continues footprint cleanup.
Limitations — not functional yet, do not use
Treat pay/mesh/Ark as docs / scaffolding only. Do not run them for production work, real funds, or trusted multi-node jobs:
| Surface | Flag | Status |
|---|---|---|
Sats marketplace (seiso pay) |
SEISO_ALLOW_PAY=1 |
Experimental. Faucet/sim only until settlement clients land. |
Buzz mesh (seiso mesh) |
SEISO_ALLOW_MESH=1 |
Experimental. E2E worker path lands here; not ready for real multi-node jobs. |
| Ark backends | SEISO_ARK_BACKEND=bark|second|ark |
Not implemented — selecting these errors until a client is bundled. |
What's new
Branding (#463)
- Detailed SEISO wordmark (mascot-matched glitch style) with Local first AI subline
- Wordmark used as the logo across Forge UI (sidebar, loading, auth, HF onboarding)
- Dashboard logo sized down; subline kept readable
Auth / crypto (#452, #453)
- Plain-language local account sign-in
- Tighten Forge keygen, at-rest encryption, and NIP-49 crypto
- Simplify crypto story to one AES stack (no password path)
Mesh (experimental) (#456, #457)
- E2E worker path: import → claim → materialize → launch
- Harden Buzz→Seiso isolation residuals
Training / extract (#458, #459)
- Close train/RL surface residuals after review
- Extract adaptive RL quantization to Adaptive-RL-Quantization (largest LOC drop this release)
Housekeeping (#451, #454, #455, #460–#462)
- Forge-ui Dependabot vite/jsdom/plugin-react + digests
- macOS: sync
bun.lock; install profiles work on Bash 3.2 - Consolidate grab-bag regression tests into domain suites
- Trim leftover CSS, dead helpers, stale docs, and post-extract dead code
Full changelog: v0.7.0...v0.8.0
Agent attribution
| Field | Value |
|---|---|
| Buzz-agent | cursor |
| Nostr-npub | npub1wu0wrsnepztey2gv4s28lh2php2ndtxp2e4cw6qx2hzcw87sdtuqz8tefn |
| Author / Signed-off-by | Legendarylibr 117605439+Legendarylibr@users.noreply.github.com |
| Commit signing | Release notes updated via gh release edit; commits on the tagged range carry repo trailers |
v0.7.0 — Nostr-signed mesh trust boundary, L402 pay scaffolding, training harden
Summary
Changes since v0.6.0 (26 commits / PRs #442–#447).
Project direction
Seiso stays a local-first Forge + CLI stack: chat, fine-tune, post-train, compress, and export on your hardware. The product spine is still self-hosted training and inference.
The longer arc is optional coordination and payment rails that stay opt-in and fail-closed:
- Human UI vs agent surfaces — Forge Train stays the human path; Buzz-agent / mesh orchestration is a separate, gated surface so OS hostnames and unsigned chatter cannot become trust.
- Nostr as the trust fabric for agents — mesh plans and Buzz-facing agent status move toward signed events only (NIP-01 / BIP-340), not ambient relay text.
- Pay remains experimental — L402 session fund/exchange and refunds sit next to Ark scaffolding; both are not wired for real funds. Local faucet/sim only until settlement clients land.
- Correctness over feature sprawl — this cut hardens finetune/RL, distill templates, slime/compat paths, and dependency-graph hygiene rather than expanding the default install surface.
Self-hosted Forge / local training remain the supported path. Never post pay/mesh tokens to public channels.
Limitations — not functional yet, do not use
Treat these as docs / scaffolding only. Do not run them for production work, real funds, or trusted multi-node jobs:
| Surface | Flag | Status |
|---|---|---|
Sats marketplace (seiso pay) |
SEISO_ALLOW_PAY=1 |
Experimental. L402 fund/exchange + failure refunds land in this release, but live Ark / Bark–Second settlement is still not wired. Faucet (SEISO_PAY_FAUCET=1) or simulated ledger only. |
Buzz mesh (seiso mesh) |
SEISO_ALLOW_MESH=1 |
Experimental. Signed-event relay policy and agent/frontend separation land here; not ready for real multi-node jobs. |
| Ark backends | SEISO_ARK_BACKEND=bark|second|ark |
Not implemented — selecting these errors until a client is bundled. Leave unset or use faucet/sim. |
What's new
Mesh / Buzz agent trust (#446)
- Separate Forge frontend training from Buzz-agent training surfaces
- Harden Buzz→Seiso trust boundary; mesh relay policy becomes signed-event-only
- Sign mesh plans with Nostr NIP-01 / BIP-340; generalize signed-relay for Buzz-facing agent status
- Stop mesh announce from signing OS hostnames into Buzz; close fail-closed review gaps
Pay scaffolding (#442, #443)
- L402 session fund/exchange and job-failure refunds
- Harden pay ledger races + slime/compat path safety
- Gate quote behind
SEISO_ALLOW_PAY(experimental) - Docs: advertise L402 alongside Ark (still do-not-use)
Training / RL correctness (#444, #445)
- Finetune/RL P1s: best-metric,
trust_remote_code, weight paths, HTTP prompts - Distill eval chat-template typing; NeMo path / training gap fixes
Deps hygiene (#447)
- Ignore local
uv.lock; Dependabot note so deleted-lock ghost alerts (nltk/pyasn1) cannot return - Canonical hashed lock remains
locks/python.lock(pyasn1==0.6.4; nltk not a dependency)
Full changelog: v0.6.0...v0.7.0
v0.6.0 — sats marketplace + Buzz mesh scaffolding, owner-npub auth, Lean provenance
Summary
Changes since v0.5.0 (19 commits).
Limitations — not functional yet, do not use
Treat these as docs / scaffolding only. Do not run them for production work, real funds, or trusted multi-node jobs:
| Surface | Flag | Status |
|---|---|---|
Sats marketplace (seiso pay) |
SEISO_ALLOW_PAY=1 |
Scaffolding only. Live Ark pay-in / Bark–Second settlement is not wired. Faucet (SEISO_PAY_FAUCET=1) or simulated ledger only for local smoke tests. |
Buzz mesh (seiso mesh) |
SEISO_ALLOW_MESH=1 |
Experimental peer coordination scaffolding. Not ready for real multi-node jobs. |
| Ark backends | SEISO_ARK_BACKEND=bark|second|ark |
Not implemented — selecting these errors until a client is bundled. Leave unset or use faucet/sim. |
Self-hosted Forge / local training remain the supported path. Never post pay/mesh tokens to public channels.
Pay & mesh scaffolding
- Add opt-in sats marketplace modules + CLI (
seiso pay) and experimental Buzz mesh coordinator + CLI (seiso mesh) (#438) - Document Path E / marketplace / mesh with explicit not functional — do not use banners across README, docs index, CLI, and related pages (#440)
Security & auth
- Harden Forge auth around the owner npub and close SSRF/session gaps (#437)
Provenance
- Add Lean 4 formalization of Nostr dataset membership proofs + CI package-dir fix (#436)
Deps / UI
- Bump forge-ui
@noble/@scure/jsdommajors with import and CI fixes (#435)
Full changelog: v0.5.0...v0.6.0
v0.5.0 — lean Forge footprint, Nostr auth/provenance, correctness hardening
Summary
Changes since v0.4.0 (96 commits).
Memory & Forge footprint
- Shrink bare Forge RSS so larger models fit: defer native runtime imports, honest Free-memory reclaim for sidecars/managed vLLM, Apple-only lean cache defaults (#430)
- Live-update Model Hub free-memory strip without changing OS headroom math (#429)
- Fix macOS unified memory reporting and startup Bun lock / doctor Hub checks (#399, #428)
- Ship Nostr relay deps with
[forge]on every OS install path (#428)
Nostr auth & provenance
- Make Nostr keygen the default Forge auth path; document onboarding + default provenance (#408, #409)
- Add opt-in Nostr provenance attestation (#406)
- NIP-49 encrypted
ncryptseckey backup (replaces plaintext nsec download) + hardening/tests (#414–#416) - Harden Nostr client for NIP-01 addressable semantics (#420)
- Merkle corpus membership proofs for training provenance (#411, #412)
Security & correctness
- Path sandbox hardening (#398)
- Lock training HTTP cancel/SSE/IDOR and
gpu_taskrestore contracts (#417) - Multi-pass correctness audits: Compat tools honesty, pool leaks, distributed
WORLD_SIZE/MASTER_*, slime, SSRF, model-pool, KB/export/job-stream (#394–#396, #418–#419, #421, #423–#426) - Remove post-train censorship prompts (#397)
- Locked-deps CI fixes (#400)
Training & platform
- Remove dead training paths; align single vs multi-GPU configs (#422)
- Harden distributed env resolution against leftover
MASTER_*and rank gates (#424) - Unify RL-quant preset registry (#393)
- Add Buzz agent skill to orchestrate Seiso jobs (#410)
Deps / UI
- Migrate Forge UI to react-router 8.3.0 (GHSA-qwww-vcr4-c8h2) (#405)
- Bump kernels, mypy, TypeScript, testing-library (#401–#404)
Full changelog: v0.4.0...v0.5.0
SeisoLocalAI v0.4.0
SeisoLocalAI v0.4.0
Since v0.3.0 (2026-07-21). 7 PRs focused on NeMo RL integration, slime multi-GPU / GRPO correctness, training-config floors, and Forge red-team hardening.
Highlights
NVIDIA NeMo RL
- New external training method
method: nemo_rl(no vendoring): launches NVIDIA-NeMo/RL viauv runwith recipesgrpo,dpo,distillation,smoke(#387). - CLI (
seiso nemo-rl), Forge Train Studio picker, example/smoke configs, andSEISO_NEMO_RL_ROOTsetup docs (#387).
Slime / GRPO / multi-GPU correctness
- DDP
no_syncduring grad accumulation with flush/average before mid-window optimizer steps; round-robin SGLang/vLLM generate across engine URLs (#390). - Drop vacuous GRPO groups (<2 non-truncated rollouts); refuse biased
vllm_weight_mode=full+ LoRA; requirevllm_base_urlfor cloud GPU + slime + vLLM (#390). - Example microbatches kept as multiples of
rollouts_per_promptso GRPO groups stay intact (#388). - HTTP rollouts honor
finish_reasonand server token ids; managed vLLM liveness/model probing hardened (#391).
Training-config invariants
- Validate-time product slime floors (
data_gen_count, held-out auto-split), refuse empty/offdata_gen, require local JSONL (orSEISO_ALLOW_TEMPLATE_SLIME), ban CI fixtures on NeMo product configs (#389). - Held-out eval uses greedy HF generate; NeMo GRPO
num_generations_per_promptalways overridden (default 4) (#389).
Forge security (red-team)
- Non-overridable security system prompt with tools; quarantine instruction-like KB chunks; Compat inference API keys are chat-only (tools need session JWT) (#392).
- Refuse remote + code-exec entirely (no ACK override); redacted chat/tool audit hashes (#392).
Dependencies & audit sweep
pyasn1≥ 0.6.4 for REAL/OID DoS advisories; lock refresh (#386).- Broader Critical/High audit fixes across compress/export/distill-RL/DPO/kernels/MoE DDP (#391).
Upgrade notes
- NeMo RL requires a recursive NeMo RL checkout and
SEISO_NEMO_RL_ROOT(plusuv); not bundled in this repo. - Product slime configs without
SEISO_ALLOW_TINY_RLenforce real-data floors; template/code examples may need operator JSONL orSEISO_ALLOW_TEMPLATE_SLIME. - Remote Forge +
SEISO_ALLOW_CODE_EXECtogether refuse startup; Compat/v1tools require a session JWT (inference API keys stay chat-only). - Multi-engine slime HTTP rollouts round-robin generate; weight sync still fans out to all engines.
Full changelog: v0.3.0...v0.4.0
SeisoLocalAI v0.3.0
SeisoLocalAI v0.3.0
Since v0.2.0 (2026-07-15). ~130 commits focused on RL/SFT correctness, real verifiable data paths, Forge safety, and kernel/chat quality.
Highlights
RL / GRPO / DPO correctness
- Outcome-first rewards: refuse format ties, field/process reward hacks, zero-spread groups, and stale vLLM/SGLang weight sync (#385).
- DeepSeek / OpenRLHF / TRL-aligned math: dual-clip, seq-mean loss, truncated/empty excluded from advantages, DPO
log 2identity and empty-completion refusal (#385). - Code GRPO binary/dense/auto outcomes; contains-answer hardening; held-out slime eval (#367–#370).
- Real-data gates for slime / Distill-RL (Forge UI + product floors) (#371).
Safety & platform
- PENDING job cancel; fail-closed remote code-exec; DNS pin without global getaddrinfo (#374, #377, #384).
- RL-quant deploy claims require llama.cpp + external quality sidecar (#375).
- Refuse FULL/BASE export of LoRA-only checkpoints; restore inference kernels on load failure (#379, #380).
- Torch 2.13 (CVE-2025-3000); private GitHub security advisory policy (#355–#356).
Training & chat
- Unified SFT tokenization / structure-preserving prep; packing + response-mask guards (#364–#366).
- Thinking budgets / strip leaked think blocks; empty Qwen3/Ollama reply fixes (#359–#360).
- Kernel stack: fused GEMM/LoRA routing, attention/packing defaults (#358–#359).
Cleanup
- Remove RL-quant markdown research-report stage; unused Forge DB tables; dead helpers (#372–#373, #382).
- July 2026 codebase review report (#376).
Upgrade notes
- Slime HTTP rollouts require
*_sync_weights: true(debug-only env escape). - Default
auto_stop_metricisoutcome_reward_mean;loss_aggregationdefaults toseq_mean;clip_ratio_cdefaults to3.0. - Distill-RL requires
rollout_temperature > 0andgrpo_group_size >= 2. - Product slime / Distill-RL paths expect real verifiable data (CI uses
SEISO_ALLOW_TINY_RL=1).
Full changelog: v0.2.0...v0.3.0
SeisoLocalAI v0.2.0
SeisoLocalAI v0.2.0
Second release since v0.1.0 (2026-06-19). ~700 commits and 90+ merged PRs focused on making native Linux NVIDIA chat stable, long replies finish reliably, training/SLIME work, and the product story clearer.
Highlights
Long-form chat (multi-pass, OOM-safe)
- Dynamic multi-pass auto-continue so long answers (songs, papers, essays) finish without one huge completion that can OOM (#340 and earlier long-reply work: #323–#326).
- Per-pass completion stays OOM-clamped (often ~512–768 tokens on native Linux NVIDIA); total reply budget scales with request, long-form intent, and free VRAM.
- Linear-decay context packing for continue passes: free headroom grows as the draft grows; recent assistant tail is preferred over a full-context pack.
- Continue on mid-sentence EOS (not only
finish_reason=length) — fixes live unfinished cuts like after “again” / “longer”. - Empty continue pass: one strong-cue retry.
- Smoother Forge UI streaming for multi-pass: adaptive reveal, continue-gap cue, live caret (#340).
Native Linux NVIDIA inference
- Extensive OOM and hang guards for llama/Ollama sidecar paths (context clamp, batch caps, VRAM budgeting, fail-closed GGUF isolation).
- Ollama-first / sidecar routing for GGUF chat; improved VRAM planning and tok/s without relaxing safety guards.
- Native Linux KV pipeline and TTFT improvements; pin chat context after preload so multi-turn reuses KV size.
- Packing and load hot-path performance for large GGUF / train startup.
System monitoring (native Linux)
- Correct CPU brand from
/proc/cpuinfo(no more arch-onlyx86_64label). - AMD
k10temp/ broader thermal sensors for live CPU temperature (#339).
Training / SLIME
- Distributed SLIME training wired through Forge UI (#335).
- SLIME sampling aligned with upstream design; optional per-token loss (#336, #337).
- Train tab no longer runs dataset prep on open (#327).
- Train/inference hot-path optimizations.
Security & reliability
- RAG trust-boundary and audit correlation hardening (#332).
- Inference generation ownership, preload locks, job runtime / kernel boundaries.
- Local sign-in reset for forgotten passwords (#291).
- CI: setuptools ≥83 for pip-audit, assorted lint cleanups.
Docs & product framing
- Clearer project description: local-first platform for chat, fine-tune, quantize, compress, and export (README + package metadata, #341 / #334).
- Install locks, platform docs, and citations updates.
Upgrade notes
- Prefer a fresh
git pull(or reinstall viastart) on native Linux + NVIDIA. - Long replies use multi-pass continues; you may see “Reply incomplete — continuing (N/M)…” during generation — that is expected, not a failure.
- Optional env (defaults are usually fine):
SEISO_CHAT_AUTO_CONTINUE_MAX— max extra passes (-1= auto)SEISO_CHAT_AUTO_CONTINUE_TOTAL_TOKENS— cumulative output ceiling (default 32768)
Full change range
- Previous:
v.0.1.0 - This release:
v0.2.0@main - Compare: v.0.1.0...v0.2.0
## SeisoLocalAI v0.1.0
SeisoLocalAI v0.1.0
Initial public release of SeisoLocalAI, a local AI forge for installing, launching, and managing local model workflows.
Highlights
- One-command Linux/macOS installer.
- Forge web UI with local onboarding.
- Local model chat and model hub workflows.
- Training, compression, export, and quantization tools.
- Installer doctor for guided troubleshooting.
- Stable install completion screen with the Forge URL.
Notes
This is the first versioned release. Expect rapid iteration as the installer, Forge UI, and local model workflows continue to improve.