airbytehq / airbytehq/PyAirbyte
feat: Add STATE message handling for incremental sync support in universal source
- Dominant language
- Python
- Stars
- 344
- Forks
- 77
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 35
Description
## Summary
The universal source connector (`SourcePyAirbyteUniversal`) currently only forwards RECORD messages from the underlying PyAirbyte source. STATE messages are dropped, which means only full-refresh syncs are supported.
## Context
In `airbyte/cli/universal_connector/source.py`, the `read()` method filters messages to only yield RECORD types. STATE messages require per-stream format conversion between `airbyte_protocol.models` and `airbyte_cdk.models`, which adds complexity.
## Desired Behavior
- Forward STATE messages from the underlying source through the universal source connector
- Handle per-stream state format conversion between PyAirbyte's protocol models and the CDK models
- Enable incremental sync support for connectors wrapped by the universal source
## References
- Related PR: https://github.com/airbytehq/PyAirbyte/pull/982
- File: `airbyte/cli/universal_connector/source.py` (line 195)
---
[Devin session](https://app.devin.ai/sessions/02ea317be9054bcba5e48a6ed1622620)
Contributor guide
Assessment
This issue has not been assessed yet.