Fixed
- Fixed CDC/logical decoding heartbeat messages causing LogicalSlotParseError; heartbeat messages are now
skipped, and standalone logical messages can be acknowledged safely. - Fixed explicit foreign_key mappings being ignored when a child table has multiple foreign keys to the same
parent. - Fixed grandchild foreign-key resolution incorrectly leaking a middle node’s parent foreign key.
- Fixed advisory lock leaks by ensuring lock/unlock happen on the same connection.
- Fixed nested same thread advisory lock usage for the same slot.
- Fixed Redis metadata writes in multi process setups by storing metadata as field-level Redis hashes instead
of overwriting the whole value. - Fixed WAL mode only consuming the first schema entry.
Changed / Maintenance
- Increased default SQLAlchemy pool sizing and enabled pool_pre_ping by default.
- Updated project dependencies and pre-commit configuration.
- Expanded test coverage across sync, query builder, transforms, plugins, Redis queue, search client, and
database base behavior. - Updated README documentation for transforms, Docker Compose usage, OpenSearch, and supported Python
versions.