• v2.0.0 b15ff510cd

    v2.0.0 Stable

    oscbot released this 2026-05-19 00:29:48 +02:00 | 4 commits to main since this release

    2.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

    • add beta prerelease branch with branch-aware image tagging (463a28b)
    • drop redundant comments in build workflow (37c0b18)
    • release: build image after semantic-release so version sync is reflected (0063571)
    • surface refactor/ci/docs/etc. types in changelog (conventionalcommits presetConfig) (a2ab434)
    Downloads