25 Commits
Author SHA1 Message Date
liuchenandClaude Sonnet 4.6 a1eb5bb28e Fix watermark detection + S3 upload + NVENC color + task download on S3 failure
Docker Build and Push / check-secrets (push) Successful in 11s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- smart_detect.py: rewrite detect_static_regions using saturation-signature method
  (high-sat logo frames vs no-logo frames diff) to handle animated/periodic watermarks
  that break temporal-std approach; merge top-region boxes; add print debugging
- web_app.py: fix S3 upload (async chunked streaming, error visible in task log);
  s3_failed flag keeps task downloadable even when S3 upload fails; add s3_failed
  column to DB; download/stream endpoints allow s3_failed tasks
- web/index.html: show play/download buttons for s3_failed tasks; task sort by
  created_at desc; watermark mode label update; isLocalDone() helper
- video_io.py: add -vf format=yuv420p before h264_nvenc to fix green video

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-28 00:20:44 +08:00
liuchenandClaude Opus 4.8 c65ec20119 Rework watermark detection + remove STTN modes
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Detection (smart_detect.py) — two complementary paths, both feed per-frame masks:
1. Faint/semi-transparent & scrolling text (e.g. "sjhs.pw"):
   - per-frame white top-hat extracts thin bright strokes (OCR can't see these)
   - connected-component count (>=3) keeps text, rejects solid bright objects
   - track-linking across frames keeps stable-width persistent tracks,
     drops erratic body/skin highlights
2. Colorful opaque logos (e.g. "黑料网 heiliao.com"):
   - high-saturation (>150) AND low temporal-variance → static logo,
     rejects moving skin and muted background art
   - corner-snapping extends box to frame edge for full logo coverage

Key fixes:
- per-frame dict uses 1-based frame numbers to match the inpaint pipeline
  (was 0-based → masks never applied → nothing removed)
- persistent watermarks require LaMa spatial inpaint; STTN temporal inpaint
  has the watermark in its own reference frames so it can't remove them

Remove STTN modes entirely:
- INPAINT_MODE_MAP drops sttn-auto/sttn-det; unknown modes fall back to LaMa
- frontend algorithm selector: LaMa (default) / ProPainter / OpenCV
- platform-task & TaskCreate default inpaint_mode = lama

Validated: both "sjhs.pw" (scrolling text) and "黑料网" (color logo)
fully removed on preview with LaMa, no content damage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:59:41 +08:00
liuchenandClaude Haiku 4.5 fabde9cf83 Fix S3 streaming upload + detect white/gray watermarks
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Build Windows CPU / build (push) Has been cancelled
S3 upload:
- Replace read_bytes() (loads entire file into memory) with streaming SHA256
  computation (8MB chunks) + httpx streaming PUT with Content-Length header
- Add detailed logging for each upload step to diagnose future failures

Watermark detection (smart_detect.py):
- Add Path B: brightness-diff detection for low-saturation watermarks like
  white/gray text (e.g. 'sjhs.pw'). Compares mean brightness in first 10s
  vs the rest of the video. Regions that are brighter in early frames AND
  located in frame corners (top-left, top-right, etc.) are flagged.
- Merge Path A (saturation-based) + Path B (brightness-diff) results
- Fall back to global std method only if both paths find nothing

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 17:06:18 +08:00
liuchenandClaude Haiku 4.5 8b583a4b0e Fix smart_detect: correct pos index, remove O(n²) loop, clean up
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- actual_pos_s[] tracks real timestamps per frame (was using positions[i]
  which breaks when frames fail to read)
- Replace O(n²) np.array_equal logo frame matching with simple bool list
- Remove unused pos_set variable
- Fix docstring still mentioning '8s tail' after removing it
- All variables consistent: logo_gray_frames replaces logo_frames_gray

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:16:48 +08:00
liuchenandClaude Haiku 4.5 5cdc727207 SAM2: sample every second for the entire video, no exceptions
Docker Build and Push / check-secrets (push) Successful in 9s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
User requirement: correctness first, slow is acceptable.
- Remove the 120s dense + 8s tail split
- Full video sampled at 1 frame/second uniformly
- Analysis still uses 1/4 resolution for speed
- Coordinate scale restored to original resolution at the end

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:14:53 +08:00
liuchenandClaude Haiku 4.5 9094b3c888 Fix SAM2 missing early watermarks: always sample first 15 seconds
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
For long videos (e.g. 1100s), uniform sampling started at ~23s, completely
missing watermarks that appear at 1s, 2s, 4s. Fix: always include dense
samples at 0.5, 1, 1.5, 2, 3, 4, 5, 7, 10, 15 seconds before the uniform
distribution, then deduplicate. Watermarks in the first 15s are now caught.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:11:29 +08:00
liuchenandClaude Haiku 4.5 b772ab3def Add HH:MM:SS timestamp to each log line in detail and log modals
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:54:32 +08:00
liuchenandClaude Haiku 4.5 f21f844f0f Fix NVENC transcode: use system ffmpeg instead of bundled one
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Bundled ffmpeg at backend/ffmpeg/linux_x64/ffmpeg has no NVENC support.
System /usr/bin/ffmpeg does. Switch _ensure_h264 to use shutil.which('ffmpeg')
which resolves to /usr/bin/ffmpeg. Also log the actual NVENC error message
so future failures are visible in the task logs.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:52:21 +08:00
liuchenandClaude Haiku 4.5 0b2a3ec6e3 Auto-transcode AV1/HEVC videos to H.264 before processing
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Root cause: FramePrefetcher._read_loop exits after cap.read() returns False
(AV1 decode failure), putting only one (False, None) sentinel in the queue.
If the caller reads past that, queue.get() blocks forever → deadlock.

Fix: _ensure_h264() checks if OpenCV can read the first frame. If not,
runs FFmpeg to transcode to H.264 NVENC (falls back to libx264 if NVENC
fails). Uses cached converted file on repeated attempts. Processing then
runs on the H.264 version which OpenCV can decode normally.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:48:12 +08:00
liuchenandClaude Haiku 4.5 8dc1276a7c Show animated pulse bar when processing but progress still 0%
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
For large videos (e.g. 27508 frames), the first 275 frames only amount
to ~1% which rounds to 0 in integer percentage — so detect_pct stays 0
for a while even though the task is actively running. Instead of showing
static zero bars, display a pulsing indeterminate bar with an explanation
message so the user knows the task is alive.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:42:20 +08:00
liuchenandClaude Haiku 4.5 b4b9837dde Fix platform worker task not appearing in list
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Two root causes:
1. Task was created in memory but not broadcast to frontend until the first
   update_task() call. If an exception happened before that, the task was
   invisible forever. Fix: broadcast immediately after task creation.
2. run_in_executor had no try/except — any exception was silently swallowed
   by asyncio.create_task with no log. Fix: wrap in try/except/finally,
   log exception via logger.exception, mark task as error.
Also: get_event_loop() → get_running_loop() (correct API for async context).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:30:52 +08:00
liuchenandClaude Haiku 4.5 b81f6afd0f Fix detail modal progress bars not updating
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Split openDetail (full render once) from renderDetail (partial update only).
- openDetail: renders static content + placeholder divs, loads logs once
- renderDetail (called on task_update): only patches status badge, phase bars,
  duration, error, action buttons — does NOT replace innerHTML or reload logs
This eliminates the flickering and actually makes progress bars respond to
WebSocket updates.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:21:35 +08:00
liuchenandClaude Haiku 4.5 da119826f5 Reduce sidebar width by 25% (264px → 198px)
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:13:54 +08:00
liuchenandClaude Haiku 4.5 ea1784a10f Fix detail modal: live progress + logs from DB
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Track S.detailTaskId; on task_update via WebSocket, re-render detail
  content if that task's modal is open (progress bars now update live)
- Detail logs: async load from DB via /api/tasks/{id}/logs, then append
  real-time WebSocket logs on top (de-duplicated)
- Remove log button from task list (logs now in detail modal)
- Clear S.detailTaskId on modal close

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:12:56 +08:00
liuchenandClaude Haiku 4.5 27b4a2c1bf Fix stuck 'processing' tasks after restart
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
On startup, tasks in downloading/processing state are interrupted (not
completed). Previously they were re-queued, causing the same task to be
processed multiple times after each restart.

Now: interrupted tasks are immediately marked as error with message
'服务重启,任务中断'. Only 'pending' tasks are re-queued.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:10:07 +08:00
liuchenandClaude Haiku 4.5 4d2fee2b1b Remove download button from task list (moved to detail modal)
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:05:03 +08:00
liuchenandClaude Haiku 4.5 50c6cf92ba Show full datetime (Y-M-D H:M:S) in task list and detail
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:00:36 +08:00
liuchenandClaude Haiku 4.5 76f5d1c857 Fix timestamps missing after restart + align detail modal
Docker Build and Push / check-secrets (push) Successful in 6s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add started_at / completed_at columns to tasks table (were missing)
- Migration adds columns to existing DB without data loss
- _save_task_to_db now persists created_at / started_at / completed_at
- _load_tasks_from_db restores all three timestamp fields on startup
- Detail modal shows same created/started/elapsed layout as table row
  with identical fmtTime / fmtDur helpers, live elapsed for in-progress tasks

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:48:58 +08:00
liuchenandClaude Haiku 4.5 d5468ec958 Set smart/watermark mode as default detection mode
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:42:34 +08:00
liuchenandClaude Haiku 4.5 a56a861d57 Add original video playback in task detail modal
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- New API endpoint GET /api/tasks/{id}/source-stream to stream cached source file
- Detail modal shows '▶ 原视频' button (always, when cache exists) and
  '▶ 处理结果' button (only when done)
- playVideo() accepts type param ('source'|'output'), sets title and hides
  download button for source files

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:37:27 +08:00
liuchenandClaude Haiku 4.5 abd5d0ce47 Fix worker logs not appearing + align settings form
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add _WorkerLogHandler that bridges Python logging → WorkerLogBuffer
  (previously only StreamHandler was used, logs went to stdout but not
  the buffer the frontend polls)
- Rewrite settings form: proper form-grid layout, form submit handler,
  App Secret show/hide toggle, hints below number fields, footer save button
- workerStatus shows configured/unconfigured text instead of badge

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:34:07 +08:00
liuchenandClaude Haiku 4.5 e512a842e4 Align Worker logs page with df-autotest design
Docker Build and Push / check-secrets (push) Successful in 22s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Extract Worker logs as separate nav page (page-worker-logs)
- Dark terminal style (#0b1320 bg, level-based colors: DEBUG/INFO/WARN/ERROR)
- Auto-poll every 2s via setInterval, starts on page enter, stops on leave
- Pause/Resume and Clear buttons, live line count
- Auto-scroll only when already at bottom
- Remove old embedded log panel from Settings page

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:29:39 +08:00
liuchenandClaude Haiku 4.5 273f03ee9f Fix modal close buttons and add task duration column
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 9s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Fix JS crash: remove stale consoleBody scroll listener (element removed)
  This was causing all nav/modal event bindings to silently fail
- Replace all data-close delegation with direct onclick handlers
- Add 耗时 column to task list (shows elapsed time, live for in-progress tasks)
- Persist task logs to SQLite task_logs table; add GET /api/tasks/{id}/logs
- Load .env via python-dotenv; remove platform env var fallbacks (UI-only)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:16:29 +08:00
liuchenandClaude Haiku 4.5 b2dfbce962 Refactor VSR web: align UI with df-autotest, add auth and platform worker
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Redesign web/index.html to match df-autotest light theme (sidebar layout,
  same token system, badges, panels, modals, toast notifications)
- Add simple cookie-based auth (ADMIN_PASSWORD env via .env)
- Add platform Worker (poll external platform for VSR tasks, sign requests
  with HMAC same as df-autotest)
- Add Settings page for platform connection config (DB-stored, no env vars)
- Add worker log API with incremental polling
- Remove bottom console strip; add per-task log modal with SQLite persistence
- Task table: add created_at / started_at columns, move progress to detail modal
- Fix modal close buttons (direct onclick, remove unreliable data-close delegation)
- Load .env via python-dotenv on startup

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:03:50 +08:00
liuchenandClaude Haiku 4.5 693d394f55 Add GPU support and multi-threaded subtitle detection
Docker Build and Push / check-secrets (push) Successful in 30s
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add gpu_id parameter to SubtitleDetect for GPU acceleration
- Implement multi-threaded frame scanning with thread-safe CUDA context
- Add smart_detect module and web application components
- Update .gitignore to exclude web cache

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 13:27:26 +08:00