v0.23.0
New experimental features:
- Swap out local file storage with CloudFlare R2
- Configure an RSS feed as the source of a news category
Misc fixes and cleanup refactors
Changelog
- 52eb338 Add --file-store flag to select the file library backend
- 4bd4c14 Add Cloudflare R2 file library storage backend
- 68f615c Add feed-backed threaded news imports
- 3e5ae31 Add in-memory MemFileStore backend
- 38f66d6 Add tests for connection login sequence and client networking
- c82ba66 Add tests for file-transfer upload/download folder handlers
- 0802a90 Close resource and info fork writers after upload
- a42a596 Decouple FileStore from *os.File for object-store backends
- db8cc16 Encode Hotline time seconds from the 1904 Mac epoch
- 490422f Fix ST1023 lint: omit inferred io.Writer type in fork writer decls
- e4eb0c0 Force-close accepted connections and drain session goroutines on shutdown
- cd67c32 Ignore .worktrees directory
- 4df6b97 Ignore .worktress directory
- bba70d0 Introduce PresenceTracker interface for online-user tracking
- f50aad7 Move testify mocks out of production files into hotline/hltest
- 21f24d2 Overhaul regression testing: e2e suite, fuzzing, CI, and bug fixes
- fff87ed Publish ClientConn only after login and guard Account with the state mutex
- 18a4d5a Publish moving edge image on master pushes
- 631b7f1 Resolve FileRoot per storage backend to keep object keys host-independent
- ae44fb2 Send a goodbye message to clients on signal-initiated shutdown
- 6b332f1 Wire presence tracker via WithPresenceTracker option