4.39

LadybirdBrowser/ladybird4.39Jul 10, 2026by chrislusf

AI Summary

This release focuses on performance improvements, security enhancements, and bug fixes across Seaweed Volume, Filer, and S3 components, alongside dependency updates.

Key Highlights

  • Async, buffered writes in VolumeEcShardsCopy
  • JWT authorization on TUS upload endpoints
  • Parallelize under-replicated volume copies
  • Surface OIDC groups and roles into STS session request context
  • Fix orphan purge against the rust volume server

New Features

  • Async, buffered writes in VolumeEcShardsCopy
  • JWT authorization on TUS upload endpoints
  • Surface OIDC groups and roles into STS session request context
  • HTTP Basic Auth for filer behind Nginx reverse proxy

Full Release Notes

## What's Changed

Seaweed Volume (Rust)

- async, buffered writes in VolumeEcShardsCopy (#10237)
- fix orphan purge against the rust volume server (#10289)

Volume (Go)

- keep tier-uploaded volume reporting to master after volume.tier.upload (#10259)
- clear remote flag when tiering a volume back to local (#10262)
- reload a remote-tiered volume without re-entering the data lock (#10266)
- parallelize under-replicated volume copies (#10275)
- rank by physical disk usage (#10271)

Filer

- keep the internal .system folder out of the per-bucket store path (#10248)
- require JWT authorization on TUS upload endpoints (#10249)
- cut metadata-subscription allocation churn (#10260)
- share one log-buffer window snapshot across all subscriber reads (#10267)

S3

- optimize encodePath memory allocations (#10252)
- fail over routed object writes when the owner filer is unreachable (#10251)
- keep empty-folder cleanup out of the multipart .uploads staging tree (#10273)
- tear down the emptied .versions directory on last-version delete (#10278)
- keep listing when empty directories fill the listing window (#10280)
- measure quota usage by logical size (#10274)
- verify SigV4 against each plausible reverse-proxy host (#10284)

Mount

- re-assign to a live volume when a write can't land (#10239)

IAM

- surface OIDC groups and roles into the STS session request context for resource-policy ABAC (#10263)

Java Client

- HTTP Basic Auth for filer behind an Nginx reverse proxy (#10258)
- fail cleanly when a chunk read returns short or empty data (#10269)

Shell & Admin

- print markVolumeWritable/markVolumeReadonly based on the writable flag (#10283)
- stop holding the shell admin lock across whole scheduler batches (#10290)

Topology & Balancer

- share replica selection between shell and workers (#10276)

Other

- reduce mem alloc while building str in refract (#10261)
- cap the shared-snapshot race test's heap in log_buffer (#10281)
- dropped test error in weed/worker/tasks/balance (#10291)
- merge filer service annotations to avoid duplicate keys in Helm (#10293)

Dependencies

- google.golang.org/api 0.278.0 → 0.287.0 (#10246)
- github.com/Azure/azure-sdk-for-go/sdk/storage/azblob 1.7.0 → 1.8.0 (#10245)
- github.com/aws/aws-sdk-go-v2/credentials 1.19.24 → 1.19.26 (#10243)
- github.com/go-redsync/redsync/v4 4.16.0 → 4.17.0 (#10244)
- github.com/ydb-platform/ydb-go-sdk-auth-environ 0.5.1 → 0.5.2 (#10240)
- docker/setup-qemu-action 4.1.0 → 4.2.0 (#10242)
- docker/login-action 4.2.0 → 4.4.0 (#10241)
- golang.org/x/crypto 0.45.0 → 0.52.0 in /test/sftp (#10264)
- golang.org/x/crypto 0.51.0 → 0.52.0 in /test/kafka/kafka-client-loadtest (#10265)

## New Contributors
* @dongle-code made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10252
* @chriswydra made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10263

**Full Changelog**: https://github.com/seaweedfs/seaweedfs/compare/4.38...4.39