-
v2.0.0 Stable
released this
2026-05-19 00:29:48 +02:00 | 4 commits to main since this release2.0.0 (2026-05-18)
⚠ BREAKING CHANGES
- api: POST /api/users/{osu_id}/ci/dispatch now requires admin role. Owners no longer dispatch manually — implicit triggers from upload, skins.json save, and delete are sufficient.
- api: /api/m/{osu_id}/... is removed; media is now served at
/api/users/{osu_id}/media/{category}/{dir}.{ext}?ref={ref}. GET /skins/{dir}/doc
is removed along with markdown rendering, sanitizer, and pregenerated doc
cache; the replacement structured detail endpoint lands next.
Features
- api: ci_lock service + no_active_ci dependency (reject 409 when CI in-flight) (9921a43)
- api: dispatch_ci is admin-only (owners trigger CI via upload / edit / delete) (d8e6177)
- api: gate writes on no-active-CI + apply rate limits + admin-only force_rebuild (f89c136)
- api: GET /api/users/{osu_id}/rate-limits snapshot for the caller (b27d334)
- api: in-memory token-bucket rate limiter + rate_limit dependency factory (32a2a4d)
- api: INTEGRATION_TOKEN bypasses rate limits on read endpoints (for trusted proxies) (c38da6e)
- api: list_ci_runs only returns runs from the last 24h (7888f36)
- api: rate-limit public read endpoints (media w/ own-repo bonus, avatar, community, users, ci runs/log/stream) (a155d5a)
- api: serve swagger ui + redoc + openapi spec under /api/ (c5a66f2)
- api: split do_previews into do_gameplay/do_panel/do_thumbnail (5475cce)
- api: structured skin detail endpoint with author + build history (58f83a6)
- semver: rank CalVer tags newer than legacy semver in sort_desc (a68595f)
Bug Fixes
- api: read version from package metadata so Swagger shows the real release tag (b7225dd)
- ci-lock: drop stale rows + close all non-terminal rows on ci-done webhook (eb46f42)
Performance Improvements
- api: parallelize skin_count lookups in /api/community (gather) (65b5f48)
Refactors
- api: /bot/skin-pick -> /bot/users/{osu_id}/picks/resolve (00fe073)
- api: canonical ref Query param on skin_doc (9c1d94a)
- api: drop /forgejo/ segment from ci run subpaths (92b064a)
- api: drop build_history from skin detail (4f6cde1)
- api: drop do_docs plumbing (docs generation is gone) (d4386e7)
- api: media URL rework + drop markdown doc rendering (93acb8b)
- api: move /api/health into routers/health.py (ec326cc)
- api: move avatar route to /api/users/{osu_id}/avatar (90dfb97)
- api: PATCH rename takes new_dir_name in body, not query (df6cb56)
- api: PUT /skins-json -> PUT /skins (d6c2bf0)
CI
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads