60 Commits

Author SHA1 Message Date
Gan, Jimmy 43977205b6 docs: add comprehensive project docs (architecture, progress, configuration, troubleshooting) 2026-07-10 00:18:50 +08:00
Gan, Jimmy 37cc8bfec6 fix CI: single ubuntu-latest job, use host Docker binary for swap
Deploy t-youtube / Build & Deploy (push) Failing after 49s
2026-07-10 00:05:09 +08:00
Gan, Jimmy 5e8ac62672 fix CI: split build (ubuntu) + deploy (nas:host), use host Docker binary for deploy
Deploy t-youtube / Build (push) Successful in 47s
Deploy t-youtube / Deploy (push) Failing after 0s
2026-07-10 00:00:40 +08:00
Gan, Jimmy 1e1eec1ecd add PDD workflow: CLAUDE.md, PDD.md, sprint spec with active symlink 2026-07-09 23:57:04 +08:00
Gan, Jimmy 9c81befaa2 fix CI: apply DOCKER_API_VERSION=1.43 to all docker commands
Deploy t-youtube / Build & Deploy (push) Failing after 39s
2026-07-09 23:57:04 +08:00
Gan, Jimmy 31bb2496a7 debug CI: set -x + ls .env on deploy step
Deploy t-youtube / Build & Deploy (push) Failing after 3m48s
2026-07-09 23:48:36 +08:00
Gan, Jimmy 2cd0ba13dd docs: architecture, sprints, and deployment guide 2026-07-09 23:45:41 +08:00
Gan, Jimmy cc9a4487ac fix CI: set DOCKER_API_VERSION=1.43 (NAS daemon too old for ubuntu-latest Docker CLI)
Deploy t-youtube / Build & Deploy (push) Failing after 1m41s
2026-07-09 23:45:06 +08:00
Gan, Jimmy bc77de05b5 debug CI: show Dockerfile + docker version on build failure
Deploy t-youtube / Build & Deploy (push) Failing after 27s
2026-07-09 23:41:21 +08:00
Gan, Jimmy ca2dc468ca fix CI: clone to /volume1 so host Docker daemon can see build context
Deploy t-youtube / Build & Deploy (push) Failing after 18s
2026-07-09 23:37:59 +08:00
Gan, Jimmy 7659d7187e fix CI: use ubuntu-latest (Docker) not nas:host, clone via gitea:3000
Deploy t-youtube / Build & Deploy (push) Failing after 28s
2026-07-09 23:34:33 +08:00
Gan, Jimmy 67af93999e chore: move PLAN.md to docs/ 2026-07-09 23:33:28 +08:00
Gan, Jimmy 11264efbb3 debug CI: check environment in first step
Deploy t-youtube / Build & Deploy (push) Failing after 1s
2026-07-09 23:30:58 +08:00
Gan, Jimmy 22719e5e0d docs: remaining tasks and follow-ups 2026-07-09 23:29:46 +08:00
Gan, Jimmy 2275f9cc1f fix CI: use git -C and absolute paths, avoid cd
Deploy t-youtube / Build & Deploy (push) Failing after 5s
2026-07-09 23:27:06 +08:00
Gan, Jimmy 57dcc8527c fix CI: HTTP fetch + separate steps for debugging
Deploy t-youtube / Build & Deploy (push) Failing after 3s
2026-07-09 23:24:02 +08:00
Gan, Jimmy 505c19eb8a fix CI: single step using existing /volume1/docker/t-youtube repo
Deploy t-youtube / Build & Deploy (push) Failing after 2s
2026-07-09 23:18:16 +08:00
Gan, Jimmy cfa8ae5b04 fix CI: nas:host runs on NAS directly, use localhost:3300 not gitea:3000
Deploy t-youtube / Build & Deploy (push) Failing after 2s
2026-07-09 23:14:33 +08:00
Gan, Jimmy 92dcfd6b04 fix CI: clone to /volume1 shared path, use gitea:3000 hostname
Deploy t-youtube / Build & Deploy (push) Failing after 0s
2026-07-09 23:11:44 +08:00
Gan, Jimmy 429ea40f29 debug CI: add ls to check build dir
Deploy t-youtube / Build & Deploy (push) Failing after 1s
2026-07-09 23:07:47 +08:00
Gan, Jimmy 613bff06f4 fix CI: clone into workspace dir, not /tmp
Deploy t-youtube / Build & Deploy (push) Failing after 1s
2026-07-09 23:05:14 +08:00
Gan, Jimmy 1946aa845a fix CI: use localhost:3300 for Gitea clone (allows anonymous)
Deploy t-youtube / Build & Deploy (push) Failing after 1s
2026-07-09 23:02:17 +08:00
Gan, Jimmy 312e787055 fix CI: clone fresh repo instead of cd into existing dir
Deploy t-youtube / Build & Deploy (push) Failing after 2m9s
2026-07-09 22:57:03 +08:00
Gan, Jimmy dcf3c0ef78 fix CI checkout: use fetch+merge with HTTP fallback
Deploy t-youtube / Build & Deploy (push) Failing after 0s
2026-07-09 22:55:57 +08:00
Gan, Jimmy a2fad2a6e1 ci: auto-deploy on push to main + remove redundant API token (Authelia is auth layer)
Deploy t-youtube / Build & Deploy (push) Failing after 1s
2026-07-09 22:55:10 +08:00
Gan, Jimmy 5c767190d2 fix: skip auth token when Authelia authed + frontend search bar improvements 2026-07-09 22:53:06 +08:00
Gan, Jimmy 90a47c95c3 feat: add FTS5 search endpoint + search param to /api/videos 2026-07-09 22:47:54 +08:00
Gan, Jimmy c5f3bd7696 feat: add full-text search bar to sidebar (FTS5) 2026-07-09 22:43:55 +08:00
Gan, Jimmy ed77b89e98 fix: remove --dry-run from tg_filter so interesting messages are printed for LLM delivery 2026-07-09 22:24:33 +08:00
Gan, Jimmy 296422ff57 remove unused ffmpeg from Dockerfile (saves ~450MB) 2026-07-09 10:52:03 +08:00
Gan, Jimmy 271ad96612 fix: j/k only navigates sidebar when video selected, add publish_date to detail view 2026-07-09 10:43:05 +08:00
Gan, Jimmy 575fdabbc0 fix: proxy support for transcript download, scroll-based mark-read, enable agent worker 2026-07-09 03:39:08 +08:00
Gan, Jimmy 672ad58ca4 fix: agent tab effect condition vs tab label mismatch 2026-07-09 00:48:59 +08:00
Gan, Jimmy ffa47a1335 sprint1: agent queue worker, proxy support, auto-mark-on-navigate-away, test fixes 2026-07-08 22:05:05 +08:00
Gan, Jimmy a154bc7978 feat: notes + agent queue, frontend rebuild, pip mirror, gitignore sync_rotation.json
- Add video_notes table and agent_queue table for persistent notes and AI agent tasks
- Add API endpoints: POST/GET /api/notes/{id}, POST /api/notes/migrate, agent queue endpoints
- Rebuild frontend: fix duplicate loadVideos(), non-blocking localStorage migration, notes UI
- Switch pip install to Tsinghua mirror for faster downloads in China
- Add backend/sync_rotation.json to .gitignore (runtime state)
2026-07-08 02:23:00 +08:00
Gan, Jimmy 77c6a9d963 sprint: fixes batch — saveNote history, DeepSeek retry, channel rotation, test fixes, docker env, blocking transcript, sync errors 2026-06-28 17:08:32 +08:00
Gan, Jimmy 5c641903c9 fix: clickable channel badge filters by channel; fix cat dropdown value; clean up saveNote 2026-06-27 01:40:06 +08:00
Gan, Jimmy 94ef5e2bb2 feat: channel/category dropdown with API filter; AI auto-categories embedded 2026-06-24 18:20:12 +08:00
Gan, Jimmy 63d42594d0 feat: restore manual sync button — safe at ~50 units/sync 2026-06-24 02:59:16 +08:00
Gan, Jimmy d87c2aba44 feat: RSS hybrid fetcher — 221 channels, 2,414 videos, ~50 units (was 2,000) 2026-06-24 02:47:34 +08:00
Gan, Jimmy d5af5e9b7d feat: rotate 50 channels daily — covers all 229 over 5 days 2026-06-24 02:38:04 +08:00
Gan, Jimmy 8ce359764f feat: 50 channels, daily 3AM cron sync, countdown timer, remove manual button 2026-06-24 02:35:22 +08:00
Gan, Jimmy 1c4f9dc713 fix: decode HTML entities in titles; add note timestamps; reorder layout — title first, AI digest below 2026-06-24 02:18:18 +08:00
Gan, Jimmy 5bfd72ab3d feat: add per-video notes with localStorage, notes tab filter 2026-06-24 01:42:12 +08:00
Gan, Jimmy f74a428521 fix: proper scroll containment — no body scroll, panel overflow-y with bind:this ref 2026-06-24 01:29:34 +08:00
Gan, Jimmy 6fe4c32a2f fix: use tick() for panel scroll reset on video switch 2026-06-24 01:24:45 +08:00
Gan, Jimmy 404d57f0b1 feat: redesigned UI — AI Digest hero, keyboard nav (j/k/↑↓), dark/light mode, description-based summaries 2026-06-24 01:17:56 +08:00
Gan, Jimmy 7b485abfbb feat: DeepSeek API + transcript fixes; add OAuth captions scope 2026-06-24 00:50:36 +08:00
Gan, Jimmy 963e9dbdf1 feat: switch summarizer to DeepSeek API, add cookie support for transcripts 2026-06-24 00:38:13 +08:00
Gan, Jimmy a0ffa41c9e feat: replace yt-dlp cookies with YouTube Data API v3 OAuth
- Add auth.py: OAuth credential manager with auto-refresh
- Rewrite fetcher.py: use googleapiclient subscriptions/search
- Add google-auth, google-api-python-client dependencies
- Update docker-compose for config volume mount
- Add .gitignore for secrets (client_secret.json, token.pickle)
- Live test: 198 videos ingested from 229 channels
2026-06-24 00:14:16 +08:00