v2.0.0-rc9

haiwen/seafilev2.0.0-rc9Nov 5, 2025by qdm12

AI Summary

This release candidate introduces a 'plain' upstream type for debugging and Gluetun support, optimizes memory usage with IP version filtering, and resolves critical stability issues including DNS loops, port listening, and system nameserver conflicts.

Key Highlights

  • Re-added 'plain' upstream type for debugging and Gluetun
  • Added map filter by IP version to reduce memory usage
  • Fixed internal DNS loop causing program hang
  • Fixed listening on non-53 ports
  • Optimized code scanning for large files

New Features

  • Re-add 'plain' upstream type
  • Add round trip duration to error message
  • Map filter by IP version

Full Release Notes

## Features

- Re-add "plain" upstream type (needed for debugging and Gluetun)
- pkg/exchanger: add round trip duration to error message
- pkg/middlewares/filter/mapfilter
  - map filter by IP version to reduce memory usage

## Fixes

- Listening on another port than 53 now works
- lowercase all question Name field to avoid any oddities
- internal/dns: loop fixed to handle error before subsequent start completes (fixing whole program being stuck at starting steps)
- do not modify system wide nameservers on Unix systems to avoid permission issues
- internal/support/ipv6:
  - try both cloudflare and google in case one is not available (hum hum cloudflare)
  - detection failure logged as warning not error
- pkg/blockbuilder: skip malformed hostnames instead of returning an error
- pkg/middlewares/localdns:
  - only use DNS servers with a private IP address
  - lowercase all fqdns before checking for locality
- pkg/middlewares/filter/mapfilter
  - blocked ip prefixes metric fixed
- pkg/nameserver: get both private and public DNS servers on Windows

## Maintenance

- pkg/dot: revert to use `tls.Client` and finer steps for more control
- pkg/blockbuilder: optimized code scanning big files line by line
- bump Go from 1.23 to 1.25
- upgrade linter to v2.4.0
- Dependencies
  - bump qdm12/goservices to 6bee97bd4978 in order to have the httpserver handler context cancelation feature
- CI
  - bump actions/setup-go from v2 to v6
  - use Go version from go.mod
  - bump Alpine from 3.20 to 3.22
  - pull container images at build time from ghcr.io when possible
- disable package comments requirement warning in dev container
- upgrade dev container to v0.21 
  - Go upgraded from 1.23 to 1.25
  - golangci-lint upgraded to v2.4.0
  - Alpine upgraded from 3.20 to 3.22
  - Disable package comment requirement by gopls' staticcheck
  - Pull container image from ghcr.io