• v8.0.0-beta.1 2e3e7d5d20

    v8.0.0-beta.1 Stable

    skinhub-bot released this 2026-08-16 18:38:32 +02:00 | 106 commits to beta since this release

    8.0.0-beta.1 (2026-08-16)

    ⚠ BREAKING CHANGES

    • drop the git-backend skin importer and legacy forgejo bucket; rename garage_* config to s3_*

    Refactors

    • drop the git-backend skin importer and legacy forgejo bucket; rename garage_* config to s3_* (d121c7e)

    Documentation

    • configuration is database-managed, not env (bbcc817)
    Downloads
  • v7.0.0 a9d2162258

    v7.0.0 Stable

    skinhub-bot released this 2026-08-16 17:50:03 +02:00 | 87 commits to main since this release

    7.0.0 (2026-08-16)

    ⚠ BREAKING CHANGES

    • source user and admin config from the database, not env

    Refactors

    • source user and admin config from the database, not env (b722cc1)
    Downloads
  • v7.0.0-beta.1 71ab406712

    v7.0.0-beta.1 Stable

    skinhub-bot released this 2026-08-16 17:38:14 +02:00 | 112 commits to beta since this release

    7.0.0-beta.1 (2026-08-16)

    ⚠ BREAKING CHANGES

    • source user and admin config from the database, not env

    Refactors

    • source user and admin config from the database, not env (b722cc1)
    Downloads
  • v6.1.1 6f35718f82

    v6.1.1 Stable

    skinhub-bot released this 2026-08-16 15:53:32 +02:00 | 92 commits to main since this release

    6.1.1 (2026-08-16)

    Bug Fixes

    • resolve the platform operator from the admin read model when ADMIN_OSU_IDS is unset (9a09367)
    • stamp a render worker's full lane union, not just its last claim (4d68e2f)

    Documentation

    • point the self-hosting guide at the stable :latest images (c13d5ba)
    Downloads
  • v6.1.0 47bf79fd6a

    v6.1.0 Stable

    skinhub-bot released this 2026-08-16 15:40:12 +02:00 | 97 commits to main since this release

    6.1.0 (2026-08-16)

    Features

    • serve community skin media by slug for slug-only consumers (a1a8bd9)
    Downloads
  • v6.1.0-beta.1 6cafd7f349

    v6.1.0-beta.1 Stable

    skinhub-bot released this 2026-08-16 15:04:38 +02:00 | 122 commits to beta since this release

    6.1.0-beta.1 (2026-08-16)

    Features

    • serve community skin media by slug for slug-only consumers (a1a8bd9)
    Downloads
  • v6.0.0 17ef28e737

    v6.0.0 Stable

    skinhub-bot released this 2026-08-16 14:24:45 +02:00 | 102 commits to main since this release

    6.0.0 (2026-08-16)

    ⚠ BREAKING CHANGES

    • drop render-run relics, ingest vocabulary, and the last git-era copy
    • drop every legacy name: objects/ keys, skinhub cookies and metrics, skin_collections
    • queue-centric admin render overview replaces CI-era health
    • drop communities.skin_repo
    • drop the community media alias; picks carry the collection owner id
    • store community collections as negative-id owners
    • drop CI naming from the render pipeline
    • rename the CI API surface to renders

    Features

    • add skin_files, skin_props and the render job queue (171181d)
    • add SKINS_BUCKET for the Postgres-backed skin backend (7801b49)
    • add the render job queue and the worker control plane (56baeb9)
    • admin-approved api keys replacing the shared token secrets (f4c19ed)
    • admin-authored announcements feed (17d99b8)
    • allow deleting every skin and serve empty profiles instead of 404 (7db8430)
    • auto-file an inquiry when a render run fails (622f54b)
    • chunk large render jobs across workers and keep per-member contribution stats (aebcfcf)
    • community opt-out so auto-enrolled members can leave (477e8ec)
    • derive existing skin dirs from skin_files instead of the Forgejo tree (89ede0b)
    • detect malfunctioning render workers and resend their tasks (2e9591a)
    • expose the render worker plane publicly and stream blobs through the api (bdf6c72)
    • fingerprint skins from their source files behind a basis tag (1b7b759)
    • first-run setup, web-editable settings, dev-login, selfhost and dev stacks (a5d1c9d)
    • hidden supporters community synced from approved render workers (c42f48e)
    • hidden team community synced from the admin role (df0b2bb)
    • import skin repo trees into skin_files and skin_props (5fc15fb)
    • import the legacy env tokens as manageable api keys (2b2df57)
    • let members register admin-approved render workers (4931e4d)
    • make the Postgres write path unconditional (96276e7)
    • manage admin roles in the app, env allowlist becomes a promote-only seed (872fd4a)
    • mint CalVer release tags in-process (e72e8cd)
    • move avatar cache and community logos into the app-owned skins bucket (1bfe7f0)
    • osu default-skin fallback in render settings (d7c6868)
    • own render task claims by the authenticated worker row (68a0d4c)
    • per-key rate limits with admin-editable owner and unlimited flag (691608e)
    • per-worker log ingestion, file logging, readable stdout (783b6b0)
    • platform render worker owned by the first admin with a real name (913a95c)
    • presign render outputs so the worker holds no storage credential (c269aa4)
    • promote and revoke admins from the users panel (1b73f58)
    • publish tags directly from osc-api state instead of reprojecting (21f5228)
    • queue-centric admin render overview replaces CI-era health (0402e0e)
    • remember last-known osu! identities so banned members keep name and country (861fda9)
    • render pipeline metrics - task queue, worker fleet, claims, log ingest (95b5ccf)
    • route pilot repos' writes through Postgres and the renderer (5f1303b)
    • scoped api keys with a served catalog, rename, scope edits and usage stats (d9f6276)
    • senders read their own inquiries; admins reply in-app (6edb3e8)
    • split render fan-out into gameplay/screenshots/icons/osk chunked task kinds (28576b1)
    • split render jobs into capability tasks with a versioned worker plane (be407ae)
    • store community collections as negative-id owners (e046861)
    • store inquiries locally and serve a vendored changelog (37db3a3)
    • stream bulk downloads while the zip is built (6c1755a)
    • stream render progress into the CI panel and live stream (da1d915)
    • support ?limit on the changelog feed (32c047f)
    • sweep orphaned bucket objects in the maintenance retention pass (6fad9f1)
    • type the CI health response without the external mode (1fe2327)
    • validate render worker output against a path and content allowlist (f92f3e5)

    Bug Fixes

    • 404 the synthetic collection owner on user-shaped routes (d389ed1)
    • cap the clip before the results screen like the approved reference (967a3d4)
    • carry skin media from the newest tag that has it (0692778)
    • copy the vendored changelog into the image build (b7760f7)
    • declare the slug field the admin activity feed emits (5b0e8ef)
    • derive cookie Secure from the frontend origin scheme, configurable dev origin (be56a72)
    • derive the admin render queue's worker column from tasks (2414a2b)
    • drop insider names from member-facing copy and api docs (a394076)
    • exclude collection owners from the roster and repo count (acaff22)
    • hold never-rendered skins out of published tags (2e1307e)
    • humanize user-facing copy and make filtered test runs use the shared servers (53049e9)
    • member-facing wording for auto-filed render inquiries (2fbdd41)
    • never orphan-sweep a shared single-bucket deploy (3e49233)
    • pin the img colour package the sharp runtime needs (d87d9bb)
    • preserve exact filenames when importing and comparing skin trees (d9686b8)
    • quiet per-statement sqlx noise in the default log filter (904340e)
    • read media from the write bucket before the legacy one (2cf9972)
    • register the self-hosted render worker so it is visible (1403cf4)
    • rename crate and remaining osc references to skinhub (288449f)
    • rename osc_skin modules and OscSkinPage schema (d3dc2b3)
    • replace the changelog feed with curated user-facing release notes (b7e2902)
    • report the publish phase from osc-api, which performs it (32b1197)
    • restore the exact CI clip shape via re-encoded trim and gate old workers (010f5ad)
    • return the actual run_number from render dispatch (0208481)
    • route support copy to the in-app form with direct DM fallback (493af02)
    • scope render-worker read and upload routes to the claiming worker (7eca36f)
    • serve the clip trim window and keyframe interval for the gameplay cut (2d3947c)
    • serve the thumbnail screenshot timestamp in the worker config (e19f0b4)
    • serve worker download locations for the self-updater (7b08a23)
    • silence the arg-count lint on the phase recorder (a197a09)
    • stream upload hashing and object puts instead of buffering whole files (5c46901)
    • stream-copy clip audio and cut 3.5s lead to the raw end (7f485bf)
    • sweep the collection rows when deleting a community (6bfb302)
    • trim 3.5s more lead off the showcase clip (dab0a77)
    • unique openapi operation ids for the api key routes (eda1696)
    • use Garage-compatible request checksums on the S3 client (264d98b)

    Refactors

    • adapt raw-SQL calls to the sea-orm 2 API (59d8be9)
    • collapse duplicate cache-invalidation and tag-query helpers (48c51db)
    • collapse repeated field parsing in the community patch (da3c0f5)
    • correct stale osc/community copy and plane/setup comments (c63e08b)
    • drop CI naming from the render pipeline (2a56dc5)
    • drop communities.skin_repo (510c753)
    • drop every legacy name: objects/ keys, skinhub cookies and metrics, skin_collections (d5f6ebc)
    • drop git-era naming, legacy worker mount, and dead metric config (0c78b62)
    • drop render-run relics, ingest vocabulary, and the last git-era copy (fb01094)
    • drop the community media alias; picks carry the collection owner id (a846c18)
    • drop the ignored force_rebuild wire fields (4ba453a)
    • one integration-test binary instead of 23 (e3b7f33)
    • remove every Forgejo dependency from the backend (aa27154)
    • rename the CI API surface to renders (af17044)
    • rename the collections gauge (8305565)
    • rename to skinhub-api (org, image, bot identity) (92ab03b)
    • replace LfsObject struct with lfs_key function (01ee214)
    • replace semver tag ordering with CalVer-only calver module (fd79d7f)
    • serve media from the skins bucket only (a8eeb47)
    • share the media proxy response between both routes (ea60ce1)
    • share the skin-detail and paginated-list response bodies (fcb43fa)
    • share the zip download response between both routes (de61335)
    • use one strict dir-name predicate everywhere (8cfc5ad)

    Documentation

    • clarify inquiry context is a text label (d5d1f3f)
    • cut comments that restate code or narrate deleted designs (973fb61)
    • state current truth in comments and API copy (9a12d67)
    • trim changelog module history narrative (1af4089)

    Styles

    Tests

    • delete the dead Forgejo wiremock scaffolding (29aea52)

    Dependencies

    • update actions/checkout digest to 3d3c42e (b296fc6)
    • update actions/setup-node action to v7 (eb3821c)
    • update aws-sdk-rust monorepo to v1.3.0 (de710d1)
    • update backend dependencies to latest (4f98a04)
    • update docker/login-action digest to dbcb813 (abe65fd)
    • update rust crate anyhow to v1.0.104 (89b1836)
    • update rust crate async-trait to v0.1.91 (c590638)
    • update rust crate aws-sdk-s3 to v1.138.1 (2423ec5)
    • update rust crate aws-sdk-s3 to v1.140.0 (5e6ba7c)
    • update rust crate base64 to 0.23 (c117a96)
    • update rust crate bytes to v1.12.1 (b09af9a)
    • update rust crate futures to v0.3.33 (cfde73d)
    • update rust crate futures to v0.3.34 (a4cf6f6)
    • update rust crate ipnet to v2.12.1 (0aabf62)
    • update rust crate moka to v0.12.16 (04cb86f)
    • update rust crate regex to v1.13.1 (a0584b9)
    • update rust crate sea-orm to v2 (9ac4d76)
    • update rust crate sea-orm to v2.0.1 (bf2628b)
    • update rust crate sea-orm to v2.0.2 (0bb5562)
    • update rust crate serde to v1.0.229 (128c7e5)
    • update rust crate serde_json to v1.0.151 (886dbf8)
    • update rust crate thiserror to v2.0.19 (48fd55a)
    • update rust crate time to v0.3.54 (a232376)
    • update rust crate time to v0.3.55 (b032729)
    • update rust crate tokio to v1.52.4 (cd6f13c)
    • update rust crate tokio to v1.53.1 (19c4d33)
    • update rust crate tokio-util to v0.7.19 (505faec)
    • update rust crate uuid to v1.23.5 (a484d3e)
    • update rust crate uuid to v1.24.0 (3e3c57a)
    • update rust docker tag to v1.97 (885841f)
    • update rust to v1.97.0 (b7c4f74)
    • update rust to v1.97.1 (edca1bb)
    Downloads
  • v6.0.0-beta.60 b60cfba7c1

    skinhub-bot released this 2026-08-16 13:16:56 +02:00 | 130 commits to beta since this release

    6.0.0-beta.60 (2026-08-16)

    Bug Fixes

    • scope render-worker read and upload routes to the claiming worker (7eca36f)

    Refactors

    • correct stale osc/community copy and plane/setup comments (c63e08b)
    Downloads
  • v6.0.0-beta.59 479e74d421

    skinhub-bot released this 2026-08-16 12:41:18 +02:00 | 134 commits to beta since this release

    6.0.0-beta.59 (2026-08-16)

    Bug Fixes

    • route support copy to the in-app form with direct DM fallback (493af02)
    Downloads
  • v6.0.0-beta.58 9556d07965

    skinhub-bot released this 2026-08-15 23:54:28 +02:00 | 137 commits to beta since this release

    6.0.0-beta.58 (2026-08-15)

    Bug Fixes

    • derive cookie Secure from the frontend origin scheme, configurable dev origin (be56a72)
    Downloads