Аудит 2026-10-19, CQ-004/CQ-005/OE-01, план п.8. Согласованный объём — только DB-половина.
Результат
Claim активной TbankSyncWork и lock connection-generation реализуются одной парой функций у owner (tbank-sync/tbank-access); около 10 inline claim и около 7 inline lock заменены вызовами. Оставшиеся inline join-проверки переведены на общее правило из backend#119. In-memory очереди и runner (mutex/runId) не трогаем: у них разная семантика.
AC
Протокол claim/lock определён в одном месте, inline-копий нет.
Семантика транзакций, fence и ошибок не изменилась; concurrency/lifecycle e2e проходят.
Число eslint suppressions не выросло.
Аудит 2026-10-19, CQ-004/CQ-005/OE-01, план п.8. Согласованный объём — только DB-половина.
## Результат
Claim активной `TbankSyncWork` и lock connection-generation реализуются одной парой функций у owner (tbank-sync/tbank-access); около 10 inline claim и около 7 inline lock заменены вызовами. Оставшиеся inline join-проверки переведены на общее правило из backend#119. In-memory очереди и runner (mutex/runId) не трогаем: у них разная семантика.
## AC
- [ ] Протокол claim/lock определён в одном месте, inline-копий нет.
- [ ] Семантика транзакций, fence и ошибок не изменилась; concurrency/lifecycle e2e проходят.
- [ ] Число eslint suppressions не выросло.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Аудит 2026-10-19, CQ-004/CQ-005/OE-01, план п.8. Согласованный объём — только DB-половина.
Результат
Claim активной
TbankSyncWorkи lock connection-generation реализуются одной парой функций у owner (tbank-sync/tbank-access); около 10 inline claim и около 7 inline lock заменены вызовами. Оставшиеся inline join-проверки переведены на общее правило из backend#119. In-memory очереди и runner (mutex/runId) не трогаем: у них разная семантика.AC