-
feat: record stream interruption reasons via StreamStatus
Some checks failedPublish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelledPublish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelledPublish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelledBuild Electron App / build (windows-latest) (push) Has been cancelledBuild Electron App / release (push) Has been cancelledRelease (Linux, macOS, Windows) / Linux Release (push) Has been cancelledRelease (Linux, macOS, Windows) / macOS Release (push) Has been cancelledRelease (Linux, macOS, Windows) / Windows Release (push) Has been cancelledreleased this
2026-03-31 16:54:39 +08:00 | 192 commits to main since this release- Add StreamStatus type (relay/common) to track stream end reason
(done/timeout/client_gone/scanner_error/eof/panic/ping_fail) and
accumulate soft errors during streaming via sync.Once + sync.Mutex. - Add StreamResult (relay/helper) as the callback interface: adapters
call sr.Error() for soft errors, sr.Stop() for fatal, sr.Done() for
normal completion. No early-return problem — multiple errors per chunk
are naturally supported. - Refactor StreamScannerHandler callback from func(string) bool to
func(string, *StreamResult). All 9 channel adapters updated. - Write stream_status into log other JSON field (admin-only) with
status ok/error, end_reason, error_count, and error messages. - Frontend: display stream status in log detail expansion for admins.
Downloads
- Add StreamStatus type (relay/common) to track stream end reason