Phase 2 of the redesign. The tool that judged quality by extension and auto-dumped
matches into the wishlist is gone; quality scanning is now the reviewed
quality_upgrade repair job.
Removed:
- Frontend: Tools-page Quality Scanner card, its JS handlers/poller/socket listener,
help tooltip + tour entry (webui index.html, core.js, helper.js, wishlist-tools.js).
- Backend: /api/quality-scanner/{start,status,stop} endpoints, the in-memory state +
executor + 1s socket broadcast, the QualityScannerDeps/run_quality_scanner shim.
- core/discovery/quality_scanner.py: the auto-acting worker + deps class (the shared
match/normalize helpers stay — the new job imports them).
Rewired:
- Automation 'start_quality_scan' action now triggers the quality_upgrade repair job
via repair_worker.run_job_now() (AutomationDeps gains run_repair_job_now, drops the
4 scanner fields). Action block's vestigial scope field removed (scope lives in the
job's settings now). NOTE: the 'quality_scan_completed' trigger no longer fires (the
repair job doesn't emit it).
- Updated all automation test _build_deps helpers + conftest tool-progress harness;
deleted the obsolete worker test. 528 affected tests pass; 6123 collect cleanly.
QUALITY_TIERS / _get_quality_tier_from_extension kept (used elsewhere).
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
"""Automation handler: ``start_quality_scan`` action.
|
|
|
|
The quality scanner was redesigned from an auto-acting tool into the
|
|
``quality_upgrade`` library-maintenance repair job (findings-based, reviewed
|
|
before anything is wishlisted). This action now simply triggers a "Run Now" of
|
|
that job; its progress and findings surface in Library Maintenance. The action
|
|
name is kept so existing automation rules keep working.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any, Dict
|
|
|
|
from core.automation.deps import AutomationDeps
|
|
|
|
|
|
def auto_start_quality_scan(config: Dict[str, Any], deps: AutomationDeps) -> Dict[str, Any]:
|
|
automation_id = config.get('_automation_id')
|
|
|
|
triggered = deps.run_repair_job_now('quality_upgrade')
|
|
if not triggered:
|
|
deps.update_progress(
|
|
automation_id, status='error', phase='Unavailable',
|
|
log_line='Quality Upgrade job could not be triggered (library worker unavailable)',
|
|
log_type='error',
|
|
)
|
|
return {'status': 'error', 'reason': 'library worker unavailable',
|
|
'_manages_own_progress': True}
|
|
|
|
deps.update_progress(
|
|
automation_id, status='finished', progress=100, phase='Triggered',
|
|
log_line='Quality Upgrade scan queued — findings appear in Library Maintenance',
|
|
log_type='success',
|
|
)
|
|
return {'status': 'completed', 'triggered': True, '_manages_own_progress': True}
|