fix: migrations, auth, providers health check, E2E tests, remove neko-sama
CI / Test (Python 3.11) (push) Has been cancelled
CI / Test (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Summary (push) Has been cancelled

- Add proper Alembic initial migration (0001_initial_schema.py)
- Migrate refresh tokens from JSON file to SQLite (RefreshTokenTable)
- Remove Neko-Sama provider entirely (redirects to Gupy, not a host)
- Fix provider health check always showing UNKNOWN
  - Run check_all_health() on startup
  - Fix POST /providers/health/check background task bug
  - Add HTMX refresh after manual health check trigger
- Fix anime search relevance scoring with MIN_RELEVANCE_THRESHOLD=0.5
- Replace bare 'except:' with 'except Exception:' across codebase
- Add Playwright E2E test suite (12 tests, auth setup, helpers)
- Fix toast container blocking clicks via pointer-events: none
- Remove obsolete Jest/Vite test files and config
- Clean up obsolete test_watchlist scripts
- Update sonarr model comment for active providers
This commit is contained in:
Kimi Agent
2026-05-12 11:45:56 +00:00
parent 693615a7dc
commit 520be53901
47 changed files with 654 additions and 3437 deletions
+7 -9
View File
@@ -41,7 +41,7 @@ async def test_watchlist_manager():
)
try:
item = watchlist_manager.create(test_user, item_data)
item = watchlist_manager.add(test_user, item_data)
print(f" ✅ Item created: {item.id}")
print(f" Title: {item.anime_title}")
print(f" Status: {item.status}")
@@ -127,8 +127,8 @@ async def test_scheduler():
print("\n2. Testing scheduler status...")
try:
status = auto_download_scheduler.get_status()
print(f" ✅ Scheduler status: running={status['running']}")
running = auto_download_scheduler.is_running()
print(f" ✅ Scheduler status: running={running}")
except Exception as e:
print(f" ❌ Status failed: {e}")
return False
@@ -136,20 +136,18 @@ async def test_scheduler():
print("\n3. Testing scheduler start/stop...")
try:
# Start scheduler
await auto_download_scheduler.start()
auto_download_scheduler.start()
print(" ✅ Scheduler started")
status = auto_download_scheduler.get_status()
if not status['running']:
if not auto_download_scheduler.is_running():
print(" ❌ Scheduler not running after start")
return False
# Stop scheduler
await auto_download_scheduler.stop()
auto_download_scheduler.stop()
print(" ✅ Scheduler stopped")
status = auto_download_scheduler.get_status()
if status['running']:
if auto_download_scheduler.is_running():
print(" ❌ Scheduler still running after stop")
return False