215 Commits

Author SHA1 Message Date
Estrella Pan
29dc558789 fix(update): 应用内更新只提供同一主版本的发布,准备 3.3.7
4.0 的更新包要求 4.0 镜像,3.3 镜像上无法应用;稳定版与测试版渠道都不再提供 4.x。
发布列表每页取 100 条,4.x 发布增多后仍能找到 3.x 发布。
2026-10-24 11:03:45 +02:00
Estrella Pan
aaa464193b chore(release): prepare 3.3.6
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KU9GqKzULrNb7MN5T9TYix
2026-09-19 17:58:18 +02:00
Estrella Pan
37fa6b4ea5 fix: RSS matching, proxy pool, parser, healthcheck and log issues (#1103 #1104 #1105 #1106 #1108 #1114 #1117)
- match_bangumi_in_list: also accept a torrent whose rebuilt title equals
  the stored title_raw (#1103, #1114)
- download_bangumi / collect_season: drop items whose season or type
  conflicts with the bangumi (#1105)
- request_url: swap in a fresh shared client on PoolTimeout without
  closing the old one (#1104)
- classic parser: Unicode Roman numeral season, strip fullwidth dash
  wrapper (#1108)
- Docker HEALTHCHECK: healthcheck.py reads the configured WebUI port and
  probes IPv4 then IPv6 loopback (#1106)
- scheduler: non-positive interval falls back to 1s; deploy docs cap
  container logs at 10 MB x 3 (#1117)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KU9GqKzULrNb7MN5T9TYix
2026-09-19 17:58:17 +02:00
Estrella Pan
f54df55754 chore(release): prepare 3.3.5
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019WTfJZ3EzCpY8SLhzXT6Sf
2026-07-26 15:49:06 +02:00
Estrella Pan
f354a63959 chore(release): prepare 3.3.4 2026-07-13 20:36:26 +02:00
Estrella Pan
37d794db0d chore(release): prepare 3.3.4-beta.2 2026-07-13 01:36:29 +02:00
Estrella Pan
9d5b1c3998 fix(renamer): safely replace higher revisions (#1078) 2026-07-13 01:36:17 +02:00
Estrella Pan
00b78dfa64 docs(renamer): design revision replacement for #1078 2026-07-13 00:31:34 +02:00
Estrella Pan
e8bcece42f feat(parser): add selectable preview engine 2026-07-12 21:07:33 +02:00
Estrella Pan
060b602aaf docs(parser): design classic and preview engine switch 2026-07-12 21:07:33 +02:00
Estrella Pan
8ceec47174 perf(parser): add reproducible tokenizer benchmark 2026-07-12 21:07:33 +02:00
Estrella Pan
56ce4dbe21 docs(parser): record resolved tokenizer architecture 2026-07-12 21:07:33 +02:00
Estrella Pan
5748892c41 docs(parser): design candidate resolver migration 2026-07-12 21:07:33 +02:00
Estrella Pan
5cc5f57e91 docs: design beta tokenizer lineage integration 2026-07-12 20:44:31 +02:00
Estrella Pan
5ab2a660ab chore: release 3.3.4-beta.1 2026-07-10 14:05:18 +02:00
Estrella Pan
582144b209 fix: make release classification deterministic 2026-07-10 12:05:02 +02:00
Estrella Pan
81cfa41c26 fix: address authentication review findings 2026-07-10 11:56:42 +02:00
Estrella Pan
7c19cb1d2b docs: plan issue-driven e2e implementation 2026-07-10 11:53:27 +02:00
Estrella Pan
d6d409cfd0 docs: design issue-driven e2e coverage 2026-07-10 11:21:39 +02:00
Estrella Pan
f3da5c02b2 docs: address auth design review 2026-07-10 09:40:31 +02:00
Estrella Pan
9561637f45 docs: design auth review fixes 2026-07-10 09:16:56 +02:00
Estrella Pan
6a8eafc9c9 docs: design architecture and auth modernization 2026-07-10 00:32:47 +02:00
Estrella Pan
277f3d740c docs: update configuration guide and locale routing 2026-07-08 10:18:24 +02:00
Estrella Pan
c8f402fd68 chore: bump version to 3.3.0-beta.2
CHANGELOG: fold the unreleased in-app updater + multi-provider LLM
entries into 3.3.0-beta.2 and add the WebUI UX/a11y/perf pass and
post-review backend fixes. docs/changelog/3.3.md (the release body)
gains the beta.2 highlights.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAxVyRwrY7z5NotTtgnwVs
2026-07-03 16:23:38 +02:00
Estrella Pan
b34fa62403 feat(update): in-app auto-update via volume-backed overlay
Adds one-click update from the settings page so routine updates no
longer require pulling a new Docker image.

- CI attaches update-bundle-<version>.zip (+ .sha256) to each release:
  backend module tree, built webui, and a manifest; the image bakes
  /app/IMAGE_VERSION as the baseline
- boot_overlay.py (shipped in the image, outside /app/module so it can
  never overwrite its own deciding logic) runs from entrypoint before
  the app starts: if a persisted overlay in /app/config/updates is
  newer than the image it tree-replaces /app/module and /app/dist and
  runs `uv sync` when the lockfile changed; if the image is newer it
  clears the stale overlay. Applied via the config volume, so updates
  survive container recreate; a newer pulled image always wins
- GET/POST /api/v1/update/{check,apply,rollback} (auth-gated, repo
  pinned to EstrellaXD/Auto_Bangumi): check queries GitHub releases
  with a stable/beta channel; apply downloads, verifies sha256, stages,
  promotes current->backup, then exits the process so Docker restarts
  into the overlay; rollback swaps the backup back. Progress streams
  over the existing SSE channel
- Settings card (Log page) shows current/latest, release notes, channel
  toggle, update + rollback, with a restart:unless-stopped requirement
  note; compose examples updated

Requires restart: unless-stopped for self-restart (documented; no
Docker-socket fallback). 1043 backend tests, mypy 0, ruff clean; 135
frontend tests, vue-tsc clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTnuEgR78cBk32bLNKar3z
2026-07-03 09:22:34 +02:00
Estrella Pan
e67dff8f6b chore: bump version to 3.3.0-beta.1, full release notes for the 3.3 beta
docs/changelog/3.3.md rewritten to cover the complete 3.3 scope (it is
the release body the tag build publishes): architecture, aria2
first-class, movies/specials, preference dedup, notifications, security
stack, PyJWT migration, performance pass, WebUI/SSE work, upgrade notes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTnuEgR78cBk32bLNKar3z
2026-07-03 08:10:47 +02:00
Estrella Pan
c2261ece0a docs(ci): make release changelog lookup version-aware, add 3.3 changelog, fix docker-compose PGID/PUID
Derive the release changelog path from the release version instead of
hardcoding 3.2.md, so the workflow keeps working after 3.3 ships. Add
docs/changelog/3.3.md summarizing the 3.3.0 section of CHANGELOG.md.
Fix docker-compose.yml's PGID/PUID falling back to shell substitution
that never runs in a compose file, using numeric defaults instead, and
drop the obsolete top-level 'version' key. Fix README's Python badge to
3.13 to match backend/pyproject.toml's requires-python.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTnuEgR78cBk32bLNKar3z
2026-07-02 17:39:49 +02:00
Estrella Pan
a0bf878b7e feat(calendar): add drag-and-drop to assign unknown bangumi to weekdays
Allow users to drag bangumi cards from the "Unknown" section into weekday
columns in the calendar view. Manual assignments are locked so calendar
refresh from Bangumi.tv doesn't overwrite them. A reset button lets users
unlock and send cards back to Unknown.

Backend:
- Add weekday_locked field to Bangumi model (migration v9)
- Add PATCH /api/v1/bangumi/{id}/weekday endpoint
- Skip locked items in refresh_calendar()

Frontend:
- Add vuedraggable for smooth drag-and-drop
- Pin indicator and unpin button on manually-assigned cards
- Drop zone highlighting during drag
- i18n strings for drag/pin/unpin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:21:00 +01:00
Estrella Pan
326d31dd0f Merge origin/main into 3.2-dev (resolve version conflict)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:55:18 +01:00
Estrella Pan
339166508b test(e2e): add comprehensive E2E integration test suite
67 tests across 11 phases exercising the full AutoBangumi workflow
against Docker infrastructure (qBittorrent + mock RSS server).
Covers setup wizard, auth, config, RSS CRUD, bangumi, downloader,
program lifecycle, log, search, notification, and credential updates
with both happy paths and error conditions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:44:03 +01:00
Estrella Pan
dfe66d279c docs: add Japanese documentation (#970)
Add complete Japanese translation for all documentation pages including:
- Home and about pages
- Deployment guides (Docker CLI, Docker Compose, DSM, Local)
- Configuration pages (RSS, Downloader, Parser, Notifier, Manager, Proxy, Experimental)
- Feature documentation (RSS Management, Bangumi, Calendar, Rename, Search)
- FAQ and troubleshooting
- API reference
- Changelogs (2.6, 3.0, 3.1, 3.2)
- Developer guide

Also updates VitePress config to add Japanese locale with full sidebar navigation.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:06:38 +01:00
Estrella Pan
789c02f7f4 fix(docs): convert all relative image paths to absolute paths
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:05:05 +01:00
Estrella Pan
d691cb6d80 fix(docs): use absolute paths for images in VitePress
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:02:27 +01:00
Estrella Pan
7596d041b9 fix(docs): use absolute paths for images (#967)
* fix(docs): use absolute paths for images in public folder

Relative paths (../image/) don't work on Vercel since the image/
folder at docs root is not tracked in git. Only public/image/ is
tracked. Using absolute paths (/image/) correctly references the
public folder assets.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update README image paths to public folder

The images are tracked at docs/public/image/, not docs/image/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:52:50 +01:00
EstrellaXD
418e2b443f Merge origin/main into 3.2-dev 2026-01-27 10:42:54 +01:00
EstrellaXD
f842c53dca fix(docs): move images to public folder for VitePress serving
Images referenced with absolute paths in VitePress frontmatter (e.g.,
/image/icons/rss.png) must be in the public folder to be served correctly.
This fixes missing feature icons on the homepage.

A symlink is created at docs/image -> public/image to maintain compatibility
with relative paths used in markdown files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 10:39:31 +01:00
Estrella Pan
03bf265651 docs: add i18n support with Chinese as default language
- Configure VitePress locales with zh-CN as root and en-US as /en/
- Translate all documentation to Chinese (31 files)
- Create English documentation under /en/ directory
- Add Chinese UI labels for navigation and pagination
- Language switcher now available in site header

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-27 07:57:13 +01:00
Estrella Pan
ae129e7764 docs: update 3.2 changelog with beta.11-13 features and add Chinese version
- Added offset detection suggested values display
- Added season offset folder path fix
- Added search panel redesign details (filters, tags, expand/collapse)
- Added mobile UI bugfixes (settings overflow, top bar, search modal, etc.)
- Created Chinese translation of 3.2 changelog

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-26 23:24:04 +01:00
EstrellaXD
1f5d92f50b docs(dev): add database developer guide
Comprehensive documentation covering:
- Database architecture and components
- Model schemas (Bangumi, RSSItem, Torrent, User)
- Common CRUD operations for each sub-database
- Caching strategy and invalidation
- Migration system and how to add new migrations
- Performance patterns (batch queries, regex matching, indexes)
- Testing setup with factories
- Common issues and solutions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:51:50 +01:00
Estrella Pan
6b6ba75d80 docs: update documentation for 3.2 beta features
- Update changelog/3.2.md with beta.5-10 features:
  - Season/episode offset auto-detection
  - Bangumi archive functionality
  - Search provider configuration API
  - RSS connection status tracking
  - iOS-style notification badges
  - Performance improvements (backend & frontend)

- Update feature documentation:
  - search.md: Add search provider settings panel docs
  - bangumi.md: Add archive, offset detection, badges docs
  - rss.md: Add connection status documentation
  - rename.md: Add episode offset section
  - calendar.md: New documentation for calendar view

- Add screenshots for new features:
  - Login page (glassmorphism design)
  - Bangumi list and edit modals
  - Rule selection popup
  - RSS manager with connection status
  - Calendar view
  - Search panel and provider settings

- Update VitePress config to include Calendar in sidebar

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-25 23:00:48 +01:00
Estrella Pan
f1fb4d7926 chore: bump version to 3.2.0-beta.8 2026-01-25 19:25:06 +01:00
Estrella Pan
6ce3f92c74 chore: bump version to 3.2.0-beta.7 2026-01-25 11:50:32 +01:00
Estrella Pan
362c7b81ca feat(ui): redesign search panel with modal and filter system
- Replace dropdown search results with full-screen modal
- Add 4-tier filter chips: subtitle group, resolution, subtitle type, season
- Auto-extract filter options from search results
- Add confirmation modal before subscribing
- Support toggle close (click search input, Escape, or X button)
- Responsive grid layout: 1-4 columns based on viewport
- SSE streaming with fade-in card animations
- Add i18n translations for search filters and confirmation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 11:48:32 +01:00
Estrella Pan
e9367e39fb docs: add vercel.json to fix Vercel deployment
Add engines field to package.json requiring Node >= 20.
Vercel project settings also need Node.js version updated from 18.x.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 09:10:55 +01:00
Estrella Pan
685dd7c5cb docs: add vercel.json to fix Vercel deployment
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 09:07:55 +01:00
Estrella Pan
f42a5296e7 docs: translate to English, upgrade VitePress 1.6.4, add API reference
- Upgrade VitePress from 1.0.0-rc.4 to 1.6.4 (stable)
- Update all dependencies (vue 3.5, typescript 5.6, @vue/tsconfig 0.5)
- Remove defunct Documate AI integration and google-analytics plugin
- Add Google Analytics via head config instead
- Translate all 25+ documentation pages from Chinese to English
- Add comprehensive REST API reference (docs/api/index.md)
- Add v3.2 changelog to sidebar navigation (fixes dead link)
- Update version string from v3.1 to v3.2
- Fix homepage changelog link to point to v3.2
- Update all WebUI screenshots with current v3.2 UI
- Add new screenshots: calendar view, bangumi poster wall
- Remove obsolete files: documate.json, deploy/windows.md, deploy/unix.md
- Update CSS variables for VitePress 1.6.x compatibility

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 09:04:10 +01:00
Estrella Pan
70c9908a5a docs: update 3.2 changelog with setup wizard feature
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 08:17:08 +01:00
Estrella Pan
9235b07b41 fix: resolve config conflicts when upgrading from 3.1.x to 3.2
Old 3.1.x config files used different field names (sleep_time/times)
that were silently dropped during loading, causing user settings to
be lost on upgrade. Also fixes version migration dispatch that was
incorrectly calling 3.0→3.1 migration for all upgrades.

- Migrate old config fields: sleep_time→rss_time, times→rename_time
- Remove deprecated rss_parser fields (type, custom_url, token, enable_tmdb)
- Fix ENV_TO_ATTR mapping to use correct model field names
- Sync DEFAULT_SETTINGS with current Config model
- Add version-aware migration dispatch (from_31_to_32)
- Add comprehensive migration tests (config + database)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 07:49:23 +01:00
Estrella Pan
06c151afc4 docs: update 3.2 changelog with mobile-first UI redesign
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 07:38:44 +01:00
Estrella Pan
8e10d09286 docs: rewrite 3.2 changelog with comprehensive changes
Include async migration, calendar view, downloader API, CI changes,
and all bugfixes based on actual commit history.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-24 06:46:43 +01:00