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>
47 lines
2.0 KiB
Markdown
47 lines
2.0 KiB
Markdown
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.
|