release: v0.2.37 — zero-argument startup, first-run wizard, real download progress
Startup no longer needs arguments: the config is created on first launch, a busy port is swapped for a free one, the console is open by default, and the browser lands on a setup wizard that downloads a ready-made .cmf model and wires it into routing (managed server + routing.default) when you press Finish. Download progress was reported from curl's own meter, which prints a full 0→100% bar for the -L redirect hop before the transfer starts — so every job showed 100% and then hung. Progress now comes from bytes on disk against the size from the HuggingFace tree (or a HEAD request). The UI and the gateway also disagreed about the output file name, so a finished download never marked its card as downloaded; the gateway now returns the exact stem and the UI sends it back verbatim for download, progress and delete. Featured models are read live from the infosave HF account in both the wizard and Import, and all 432 UI strings now exist in every one of the 7 languages.
This commit is contained in:
@@ -3,6 +3,53 @@
|
||||
All notable changes to this project are documented here.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
||||
|
||||
## [0.2.37] - 2026-08-06
|
||||
|
||||
### Added
|
||||
- **Zero-argument startup**: `cortiq-gateway` now runs with no flags. The config is created on
|
||||
first launch (repo `config/gateway.toml` when run from a checkout, otherwise
|
||||
`~/.cortiq-gateway/gateway.toml`, or `$CORTIQ_GATEWAY_HOME`), the browser opens by itself,
|
||||
and a busy port is swapped for the next free one. `--no-browser` / `--no-port-search` opt out;
|
||||
`--config` still takes an explicit path.
|
||||
- **No admin token required by default**: the console opens without auth. Set `--admin-token`,
|
||||
`[admin].token` or `[admin].token_env` to protect it.
|
||||
- **First-run wizard** (`/admin#/onboarding`): pick a language, download a ready-made `.cmf`
|
||||
model, and finish — Finish connects every completed download as a local model, starts its
|
||||
`cortiq serve` and points `routing.default` at it. Nothing to edit by hand.
|
||||
- **Ready-made models are read live** from the `infosave` HuggingFace account in both the wizard
|
||||
and Import, with per-variant quantizations, real sizes, an "already downloaded" mark and a
|
||||
delete button. Newly published models appear without a gateway update.
|
||||
- **Windows-friendly data dir**: `%APPDATA%` / `%LOCALAPPDATA%` / `%USERPROFILE%` are used before
|
||||
falling back, so running the exe from `Downloads` never writes into `Program Files`.
|
||||
- **Full localization**: all 432 UI strings now exist in every language (en, ru, de, fr, es, zh, tr).
|
||||
Import, Settings → Local models, the model form and the whole first-run wizard were English-only
|
||||
in de/fr/es/zh/tr before this release.
|
||||
|
||||
### Fixed
|
||||
- **Download progress jumped straight to 100% and then hung**: with `-L`, curl prints a complete
|
||||
`0→100%` progress bar for the redirect hop before the transfer starts, and that bar was being
|
||||
parsed as the download's progress. Progress is now derived from bytes on disk against the size
|
||||
reported by the HuggingFace tree (or a `HEAD` request), so the bar and the reported
|
||||
`done / total` bytes track the real transfer.
|
||||
- **Re-downloading over an existing file reported 100% instantly**: the previous copy is now
|
||||
removed before the transfer starts, so the size poller cannot read stale bytes.
|
||||
- **Downloaded models were not recognised**: the admin UI derived the output file name
|
||||
independently of the gateway, so a finished download did not mark its card as downloaded and the
|
||||
delete button never appeared. The gateway now returns the exact output stem (`local_name`) and
|
||||
the UI sends it back verbatim for download, progress and delete.
|
||||
- **Registering a local model produced an unusable pool entry**: with `manage_server = false` the
|
||||
model was added to the static pool pointing at `cortiq_server_url`, where nothing listens —
|
||||
every call failed with `upstream unavailable`. Registration now always creates a managed server
|
||||
the gateway runs itself, and repairs a stale static entry for the same file.
|
||||
- **Cancel did nothing during a sharded download**: cancellation was only checked between part
|
||||
files, so a multi-GB part had to finish first. The running transfer is now aborted immediately
|
||||
and the partial output removed.
|
||||
- **Deleting a model left the config broken**: removing a `.cmf` now also unregisters the model
|
||||
and stops its managed server instead of leaving a pool entry pointing at a missing file.
|
||||
- **Two variants of one repo collapsed into a single job row**; jobs are now keyed by repo + variant.
|
||||
- Curl's stderr is captured into the job log, so a failed download explains itself instead of
|
||||
showing a bare exit code.
|
||||
|
||||
## [0.2.36] - 2026-07-25
|
||||
|
||||
### Fixed
|
||||
|
||||
Reference in New Issue
Block a user