• v4.2.0 fc08bf9526

    v4.2.0 Stable

    oscbot released this 2026-06-06 12:56:11 +02:00 | 181 commits to main since this release

    4.2.0 (2026-06-06)

    Features

    • ops: add a container HEALTHCHECK on /api/health (4f67530)
    • rate-limit: rate-limit skin-detail and pick endpoints, add picks_save bucket (10c6e9f)

    Bug Fixes

    • db: track applied read-model migrations in a ledger (82e6de4)
    • download: stream download-all .osk from Garage by OID, not Forgejo media (13d32ea)
    • picks: keep owner_kind on picks embedded in the user page (2d54d7a)
    • rate-limit: compare integration token in constant time (2fc7f97)
    • rate-limit: key on the rightmost X-Forwarded-For hop (5ee686c)
    • upload: stream multipart parts to disk and bound batch size (dc04c2f)

    Performance Improvements

    • auth: resolve session and user in a single query (65ed5de)
    • ci: render only new log lines in the live stream (e349856)
    • ci: resolve dispatch run id in the background, return immediately (5d220c2)
    • community: count member skins in one grouped query (f0ead2e)
    • media: skip ref resolution when the tag already matches (02a3521)
    • rate-limit: shard the token-bucket map across 16 locks (4138606)
    • reads: resolve repo tags once per page instead of three times (93d2455)
    • upload: spool decompressed .osk members to disk instead of RAM (ca7567d)
    • zip: fetch skin .osk files concurrently when building zips (982b418)

    CI

    • release: show chore commits in the changelog (1a21f45)
    • release: upgrade semantic-release toolchain to latest, pinned exact (e32b9ec)

    Tests

    • ci: assert dispatch returns immediately without a run id (9632c44)
    • upload: reject an over-cap part with 413 while streaming (67a4841)

    Chores

    • release: 4.2.0-beta.1 [skip ci] (4a39713)
    • release: 4.2.0-beta.2 [skip ci] (f3b67d1)
    • release: 4.2.0-beta.3 [skip ci] (9706024)
    • sync Cargo.lock to 4.1.0 (eb900ea)
    • sync Cargo.lock to 4.2.0-beta.2 (eb64c1c)
    Downloads