Pull requests / #1092
#1092 launcher: pick a model and its settings in one window (experimental)
open · @pipeob0 · 0 commentaires · Sur GitHub
Setup & installServer & APIAMD / HIPNVIDIA / CUDAModels & quantsDocumentationWindowsLinux
Description
### Experimental - please read first The launcher is **experimental**: it is a new surface over `setup.py` and `serve/server.py`, it has been run on **one** PC (Windows 11, RTX 5060 Ti 16 GB, Ryzen 7 5700X3D, 64 GB, engine 0.1.39; the suites below were run on top of the new `main`), and it will have bugs. What has *not* been exercised: Linux (`./launcher.sh` is written and marked executable but never run on a Linux box), AMD/ROCm, several GPUs on one model, WSL, and a preset saved by an older version of the page (the presets file has no schema version yet). Nothing it does goes outside this PC, and nothing it does is impossible for `SETUP.bat` / `run-<model>.bat` to do; the only files it writes of its own are in `.strata-launcher/`. Treat it as a preview, not as a replacement for the scripts. **Also AI-developed**: written by an agent (pi) running on Strata's own local model (`qwen3.8-flash-next-iq3_s`), reviewed and tested by hand on the PC above - see the `AI-developed:` trailer on each commit. ### This is #946 on the new main #946 was closed by the history cleanup (force-pushed `main`), not by a review - see [the maintainer's note](https://github.com/Niko1221/Strata/pull/946#issuecomment-6013995003). This branch is the same **3 commits cherry-picked onto the new `main`: no conflicts**, 30 files, +3443/-14, `launcher.sh` executable. **#945 is yours and is in `main`**, with your `kv_streaming_wanted` (the k8v4 change included). The launcher calls that function; it keeps no copy of the rule. Your k8v4 change caught one of our labels - the page said k8v4 "does not stream its KV cache", true of 0.1.39 and not of 0.1.40 (#711) - so the label follows setup and a test reads setup's rule for each KV precision and fails if a label claims a streaming setup does not write. **55 launcher tests + 44 setup tests green** on top of the new `main`, with no GPU, no download and no display: ``` python -m unittest launcher.test_presets launcher.test_api # 25 + 30 python -m unittest tools.test_setup_risk tools.test_setup_golden # 44 ``` ### What it is `LAUNCHER.bat` (Linux: `./launcher.sh`) serves a page on `127.0.0.1` for the case `START-HERE.bat` is not meant for: "the Coder today with 32K, leaving 2 GB of VRAM for the game", without remembering flags. It shows the sizes setup offers and what each needs on this PC, the models this folder has and what their own `strata-<model>.json` says they run with, presets you save and reuse, and setup's `--calibrate` as a job you can watch and stop.  (The same file is in the PR at `docs/media/launcher.png`; `docs/LAUNCHER.md` shows it too.) **A front-end, not a second engine**: every answer comes from `tools/strata_mcp.py`, the controller the MCP server already uses; installing, applying and starting run `setup.py` and `serve/server.py` the way `SETUP.bat` and `run-<model>.bat` do. No second config format, no second install path, no dependency beyond the standard library, and `setup.py` / `START-HERE.bat` do not change: if you never open the launcher, nothing about your install changes. A preset is setup's own choices with a name: each field names the `setup.py` flag it writes, and a field left empty is not passed so this PC's default decides - that is what makes a preset portable to another machine. Starting a preset applies it first when the model's config differs, and that difference is compared with **what setup's rules decide, not with the words**: a preset saying `auto`, or saying what `auto` decides on this PC, is the model as it runs and never re-runs setup to change nothing. ### If you want less of it Say the word and I send the cut-down version: **the model list plus presets only** - the presets commit on its own is 3 files, +737 - no calibration job, no connect card, no install panel. The parts I would drop first are the calibration job and the connect card; the page's middle column is the launcher's reason for existing. ### Relation to the open work - **#564** asked for a GUI for settings; it was closed with the Model settings card in the web app (0.1.39). The launcher overlaps that card on one setting only (`--vram-reserve-mib`): the web app exists once a model is running, the launcher is for choosing and installing before anything runs. - Different from **#434** (which re-implemented config editing and a manager) and from **#686** (a terminal launcher): this one reuses the MCP controller and adds no engine logic of its own. - One bug found while testing, and the test that keeps the class of it out: `Backend` offered `auto`, which setup's `--backend` never took, so it reached the user as argparse's own `invalid choice`. The field now uses setup's own words (the empty choice writes no flag, which is also what keeps a preset portable to a PC with another card), `sycl` was missing and is offered, and `test_no_select_offers_a_choice_setup_does_not_take` reads setup's own `add_argument` tables and fails if the page offers a value setup does not take, or writes a flag setup does not have. ### Docs `docs/LAUNCHER.md` (with the screenshot), plus one line in README (and in its six translations), AGENTS.md, AI_SETUP, INSTALL, MCP_SERVER and MODELS. `.gitignore` gains `/strata-*.json.bak`, which setup's settings card leaves behind. ### Known rough edges - One model runs at a time: the page says which one and refuses to start a second. - A preset made from an older config can quietly lower a setting that config had; the plan lists the differences before anything runs, but that list is only as good as what setup reads back from a config. - The page polls (state every few seconds, the logs every 3 s): more file reads than the scripts do, on a slow disk. - The page itself is English only (the docs line is translated, the UI is not). - No uninstall step: removing it is deleting `launcher/`, `LAUNCHER.bat`, `launcher.sh` and `.strata-launcher/`.
Sur le site
Liens install, modèles, releases.