fix(scrape-objective): drop redundant self arg in sync_all_groups loop #313
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#313
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/obj-sync-all-groups-self-arg"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug
Live Objective scraper попадает в TypeError после первого же trigger'a через
/api/v1/admin/scrape/objective/sync-our:Glitchtip issue: BACKEND-1F, release
a93bef4(PR #311 деплой), first_seen 2026-05-17 16:07:24Z.Root cause
backend/app/workers/tasks/scrape_objective.py:431вызываетsync_objective_group(self, group_name=group, ...)— но это@celery_app.task(bind=True)task.Task.__call__для bind=True уже авто-prepend'ит task instance кself.run(). Лишний positionalselfложится на первый юзер-param (group_name), потом kwarggroup_name=group→ TypeError.Fix
Одна строка: убрать
self,из call-сайта. Сигнатураsync_objective_group(self, group_name=None, ...)— НЕ трогать (нужна для bind=True).Cross-call audit
Grep по всему репо (
backend/,data/):sync_objective_group(— 3 hits: def (142), logger (429), bugged call (431). Один call-сайт, всё.sync_all_groups(— только def (356). Только через.apply_async()(admin_scrape.py).Acceptance
После merge + deploy:
objective_scrape_runsсоstatus='running'rows_lots > 0,raw_idpopulated в свежихobjective_lotsстрокахa93bef4)Risk
Минимальный. Single-line argument removal в loop. Никакая логика не меняется, только Python calling convention.
Merged via deep-code-reviewer — verdict APPROVE.
Cross-call audit confirmed single call-site (line 431). Celery
bind=Truesemantics correct:Task.__call__auto-binds task instance, so passingselfexplicitly at direct-call site causes double-bind on first user param. Body ofsync_objective_groupnever referencesself, so removal is safe. Signature unchanged (self: Anyat line 143) — needed forbind=Truedeclaration. Forgejo Actions deploy.yml triggers onbackend/**— confirmed.