Release notes for 1.1.0

The release script uses RELEASE_NOTES.md as the body when it is there, so the
notes are reviewable in a diff rather than typed into a web form.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 13:23:06 +02:00
co-authored by Claude Opus 5
parent cb8a28b156
commit 0f5da38a27
+46
View File
@@ -0,0 +1,46 @@
The client no longer carries a store address. It asks the site which stores exist
`GET /api/stores` — and installs what comes back: one record and there is
nothing to decide, several and the setup screen shows a picker.
Adding a store is now a database row on the site, maintained from its admin panel,
rather than a release of this app.
### What a record gives it
- **`storeRepositoryUrl`** → the store's `config.json`, which stays the authority
on how that store behaves: platforms, statuses, where things land.
- **`catalogUrl`** and **`name`** override the config's `store.base_url` and
`store.name` — the registry is what says which catalog a store is *for*.
- **the store id**, from the repository name: `ttg-desktop-store` becomes `ttg`.
A store repository with no `config.json` still installs. The engine merges
whatever it is handed onto its own defaults, so the client writes a three-field
config and the store behaves like the default one pointed at that catalog.
`STORES_API` overrides the registry address, which is the one thing about a
particular site left in the client.
### Opening it on macOS
Ad-hoc signed, **not notarised**, so macOS asks first:
```sh
xattr -dr com.apple.quarantine "/Applications/WarpEngine Store.app"
```
*Open Anyway* under **System Settings ▸ Privacy & Security** works as well.
Nothing the store itself downloads is affected — Python fetches those, and Python
does not set the quarantine flag.
### What is attached
**macOS arm64 only**, the machine this was built and verified on. Windows and
Linux packages need a build on those platforms (`make dist-win` / `dist-linux`).
### Verified
Against a local endpoint serving the same payload the site returns, with two
records — one store whose repository has a `config.json` and one without. Both
installed, and the engine listed all ten titles with the synthesised config. The
window was checked on both outcomes: the grid with a store present, the setup gate
with a populated picker when there is none.