feat(stream): report watch progress to API via HTTP Range tracking
Track the highest byte offset served by the stream server to estimate playback progress (0-100%). A WatchReporter goroutine sends progress to POST /api/internal/agent/watch-progress every 10s during streaming. - Add maxByteOffset + totalFileSize to StreamServer for Range tracking - Add FileSize() to fileProvider interface (all 3 providers) - New WatchReporter: periodic progress reporter tied to daemon context - New WatchProgressUpdate type with optional progress/position/duration - Wire reporter into all 3 stream paths (task stream, disk stream, active download stream)
This commit is contained in:
parent
932312fc56
commit
0dafeaa70d
8 changed files with 366 additions and 10 deletions
|
|
@ -297,6 +297,9 @@ func (s *StreamEngine) FileName() string { return s.fileName }
|
|||
// FileLength returns the total size of the selected file in bytes.
|
||||
func (s *StreamEngine) FileLength() int64 { return s.totalBytes }
|
||||
|
||||
// FileSize implements fileProvider for StreamServer compatibility.
|
||||
func (s *StreamEngine) FileSize() int64 { return s.totalBytes }
|
||||
|
||||
// BufferTarget returns the buffer threshold in bytes.
|
||||
func (s *StreamEngine) BufferTarget() int64 { return s.bufferTarget }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue