- reorder lock is now per-(connection, loop) via module-level registry
shared by all ChildrenDao instances over one wrapper, matching the
migration runner's approach; race test now uses two DAO instances on
one connection
- SQL-leak guard scans recursively (rglob); self-scan excludes only the
two guard functions' exact source spans via ast line numbers, so code
anywhere else in the file is still scanned
- AdminUsersDao.add: single INSERT ON CONFLICT DO NOTHING (rowcount-derived
result), race-safe; concurrent-add test with 5 racing coroutines
- ChildrenDao.reorder: rejects duplicate ids (ValueError); per-instance
asyncio lock serializes concurrent reorders (the wrapper rejects
concurrent transactions); rollback test now forces a real finalize-batch
failure and asserts original order survives
- SQL-leak guard: scans package + tests with FROM/INTO/UPDATE/DELETE FROM/
JOIN pattern; narrowly justified exclusions (schema DDL, migrations,
their tests); this test file verified to contain no direct table SQL