release: v0.2.38 — media generation, task-based routing, ops batch
Docker / publish (push) Canceled after 0s
Release / crates-io (push) Canceled after 0s
Release / release (macos-14, aarch64-apple-darwin) (push) Canceled after 0s
Release / release (ubuntu-latest, x86_64-unknown-linux-gnu) (push) Canceled after 0s
Release / release (windows-latest, x86_64-pc-windows-msvc) (push) Canceled after 0s
Docker / publish (push) Canceled after 0s
Release / crates-io (push) Canceled after 0s
Release / release (macos-14, aarch64-apple-darwin) (push) Canceled after 0s
Release / release (ubuntu-latest, x86_64-unknown-linux-gnu) (push) Canceled after 0s
Release / release (windows-latest, x86_64-pc-windows-msvc) (push) Canceled after 0s
This commit is contained in:
@@ -3,6 +3,47 @@
|
||||
All notable changes to this project are documented here.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
||||
|
||||
## [0.2.38] - 2026-08-07
|
||||
|
||||
### Added
|
||||
- **Image & video generation in the Playground**: three tabs now — Chat, Image, Video. Image runs
|
||||
`cortiq imagine` over a local text-to-image `.cmf` (Lumina) with width/height/steps/CFG/seed,
|
||||
live step progress and an honest ETA; the P6 PPM result is decoded to a canvas in the browser
|
||||
with one-click PNG export. Video runs `cortiq animate` (MiniMax-H3) with frames/steps/quality
|
||||
and optional first/last keyframes (rasterized to PPM client-side); the MJPEG+PCM AVI is decoded
|
||||
in JS and played on a canvas synced to the wav — no ffmpeg on either side (an mp4 remux happens
|
||||
opportunistically when ffmpeg exists). Local `.cmf` files are classified chat/image/video via
|
||||
`cortiq info`; media packs are never registered as chat servers. Requires cortiq ≥ 0.5.56.
|
||||
- **Task-based routing**: `[routing.tasks]` maps a router task label to an ordered model list.
|
||||
A matching rule's models lead the candidate chain and the complexity chain follows as fallback,
|
||||
so a task pin never weakens failover. The Routing page builds the editor from the account's
|
||||
live taxonomy (`GET /v1/taxonomies`), shows each task's share of 7-day traffic, and supports
|
||||
custom labels. Responses whose chain was headed by a rule report `route_source "router+task-rule"`.
|
||||
- **Generation gallery** under the media tabs (lazy PPM thumbnails, reopen with seed/steps, delete),
|
||||
and generations **queue up** (with position shown) instead of being rejected.
|
||||
- **Chat is a real dialogue**: history is resent, bubbles, Clear, Cmd/Ctrl+Enter — plus live
|
||||
metrics: token counts, tok/s and time-to-first-token.
|
||||
- **Exact stream token counts** when the model server provides usage; the gateway fallback counts
|
||||
content chunks (exactly 1/token on cortiq serve) instead of chars/4, flagged as an estimate.
|
||||
- **Jobs survive restarts**: import and media job lists persist to `<data>/jobs-*.json` and are
|
||||
reconciled on start — the Register button no longer vanishes because the gateway restarted.
|
||||
- **Admin console, ops batch**: Logs viewer in the sidebar (500-line ring, filter/level/pause/copy);
|
||||
a System panel on the dashboard (CPU sparkline + load, RAM incl. the gateway's RSS, free disk at
|
||||
the models dir); "not enough disk / may not fit in RAM" badges on model cards before a download;
|
||||
a Restart-gateway button; an update-available notice (crates.io checked twice a day); config
|
||||
export as the real `gateway.toml` and TOML import (validated, hot-reloaded); "Connect your app"
|
||||
snippets (curl/Python/JS) on the keys page; one-click `cortiq bench --json` on the Models page.
|
||||
- **Docker ships the cortiq binary** (built in the builder stage, plus `libvulkan1`): local `.cmf`
|
||||
chat models and media generation now work in containers, where auto-install never could.
|
||||
- **Security**: an open admin console listening on 0.0.0.0 outside Docker warns in the log and
|
||||
shows a dismissible banner.
|
||||
|
||||
### Fixed
|
||||
- The default config pointed at a placeholder `localhost:8080` router with a nonexistent taxonomy,
|
||||
leaving every fresh install with a permanently red "Router: offline" badge. A fresh install now
|
||||
targets the hosted allaigate router and degrades gracefully until a key is set.
|
||||
- The wizard's Finish lands on the Playground instead of the Models list.
|
||||
|
||||
## [0.2.37] - 2026-08-06
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user