Skip to content

fix(sources): respect supported sync modes in configured catalogs - #1414

Open
HootRock wants to merge 1 commit into
airbytehq:mainfrom
HootRock:fix/respect-supported-sync-modes
Open

HootRock wants to merge 1 commit into
airbytehq:mainfrom
HootRock:fix/respect-supported-sync-modes

Conversation

@HootRock

Copy link
Copy Markdown

Fixes #917.

Source.get_configured_catalog() currently selects incremental by default even when a stream advertises only full_refresh. Select full_refresh for that case, while keeping the incremental preference for dual-mode streams and the existing force_full_refresh behavior from #899.

Six regression cases construct real protocol catalogs through the public method and cover all supported capability combinations with and without forced refresh. Discovery is mocked; no connector or live provider is run.

Validation:

  • The full-refresh-only regression fails on unmodified main and passes with this fix; the source unit suite passes all 28 tests.
  • Repository-wide Ruff lint/format checks pass (262 files); Pyrefly reports 0 errors.
  • Independent local review found no actionable issues.

Broader offline unit run: 1269 passed, 1 skipped, 2 failures. Both failures reproduce on clean main: the Cloud workspace-scope test makes an unmocked external request (blocked here), and the time-format test assumes UTC on this UTC+8 host. Nine unrelated constants subprocess cases were excluded after a local subprocess timeout. External sockets/DNS were prohibited; no full-suite or live-integration pass is claimed.

reviewed and tested locally.

@github-actions github-actions Bot added the community PRs from community contributors label Oct 20, 2026
@octavia-bot
octavia-bot Bot marked this pull request as draft October 20, 2026 18:17
@octavia-bot

octavia-bot Bot commented Oct 20, 2026

Copy link
Copy Markdown

Note

📝 PR Converted to Draft

More info...

Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy.

As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page.

To skip draft status in future PRs, please include [ready] in your PR title or add the skip-draft-status label when creating your PR.

@github-actions

Copy link
Copy Markdown

👋 Welcome to PyAirbyte!

Thank you for your contribution from HootRock/PyAirbyte! We're excited to have you in the Airbyte community.

💡 Show Tips and Tricks

Testing This PyAirbyte Version

You can test this version of PyAirbyte using the following:

# Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/HootRock/PyAirbyte.git@fix/respect-supported-sync-modes' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/HootRock/PyAirbyte.git@fix/respect-supported-sync-modes'

PR Slash Commands

As needed or by request, Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /uv-lock - Updates uv.lock file
  • /test-pr - Runs tests with the updated PyAirbyte
  • /prerelease - Builds and publishes a prerelease version to PyPI
  • /evals - Runs the Cloud MCP evals that use the MCP tools this PR changed (/evals full=true runs the full suite)
📚 Show Repo Guidance

Helpful Resources

If you have any questions, feel free to ask in the PR comments or join our community:

📝 Edit this welcome message.

@HootRock
HootRock marked this pull request as ready for review October 20, 2026 18:19

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community PRs from community contributors

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sync mode selection should validate against stream's supported_sync_modes

1 participant