-
Notifications
You must be signed in to change notification settings - Fork 43
feat(cdk): Add cursor age validation to StateDelegatingStream #890
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Alfredo Garcia (agarctfi)
merged 54 commits into
main
from
devin/1770066385-state-delegating-stream-cursor-age-validation
Mar 12, 2026
Merged
Changes from all commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
cf01a75
feat(cdk): Add cursor age validation to StateDelegatingStream
devin-ai-integration[bot] 67bc5c8
chore: re-trigger CI
devin-ai-integration[bot] 45772f4
Merge branch 'main' into devin/1770066385-state-delegating-stream-cur…
agarctfi 1edeedd
Auto-fix lint and format issues
61d8d5d
Potential fix for pull request finding 'Unused import'
agarctfi 21da112
Potential fix for pull request finding 'Unused import'
agarctfi 0e33418
fix: Address Copilot review comments
devin-ai-integration[bot] 324344f
fix: Correct ruff format for assert statement
devin-ai-integration[bot] da8a5a5
fix: Convert cursor_value to str for type safety
devin-ai-integration[bot] 37e046e
fix: Format long line for ruff compliance
devin-ai-integration[bot] dceb70d
Potential fix for pull request finding 'Unused import'
agarctfi c14f963
refactor: Move incremental_sync check to _get_state_delegating_stream…
devin-ai-integration[bot] 86d5ea6
fix: Return True (full refresh) when cursor is invalid/unparseable
devin-ai-integration[bot] 567ca7a
fix: Parse cursor from both full_refresh_stream and incremental_stream
devin-ai-integration[bot] be72c5c
feat: Add support for per-partition state and IncrementingCountCursor…
devin-ai-integration[bot] 2b54cc5
feat: Add get_cursor_datetime_from_state method to cursor classes
devin-ai-integration[bot] f199583
feat: Add get_cursor_datetime_from_state to concurrent cursor classes
devin-ai-integration[bot] fbda39f
fix: Fix MyPy type errors in ConcurrentCursor.get_cursor_datetime_fro…
devin-ai-integration[bot] a2d4b56
refactor: Wire factory to use cursor class get_cursor_datetime_from_s…
devin-ai-integration[bot] 1defe9e
fix: Fix ruff format and mypy errors in model_to_component_factory
devin-ai-integration[bot] a017dff
fix: Skip retention check for concurrent state format
devin-ai-integration[bot] d3e76d4
fix: Skip retention check for IncrementingCountCursor instead of rais…
devin-ai-integration[bot] d31c26b
fix: Return False (skip) when no datetime-based cursors found for ret…
devin-ai-integration[bot] 653022b
fix: Remove unused pytest import
devin-ai-integration[bot] 43dc47e
fix: Raise ValueError for unparseable cursor datetime when api_retent…
devin-ai-integration[bot] 1531b39
refactor: Use stream cursor for retention period check, remove legacy…
devin-ai-integration[bot] b4c24c6
fix: Try both full_refresh and incremental cursors for state parsing
devin-ai-integration[bot] 67f9e60
fix: Remove per-partition state fallback, let cursor classes handle s…
devin-ai-integration[bot] 8608b5f
fix: Re-add _get_state_delegating_stream_model and fix ruff format
devin-ai-integration[bot] 8faa0ae
Revert "fix: Re-add _get_state_delegating_stream_model and fix ruff f…
devin-ai-integration[bot] ea7a757
fix: ruff format long lines in create_state_delegating_stream
devin-ai-integration[bot] 714c667
fix: Restore _get_state_delegating_stream_model and fix MyPy errors
devin-ai-integration[bot] 16a895e
fix: Handle FinalStateCursor gracefully and detect final-state for re…
devin-ai-integration[bot] bddc671
refactor: Move FinalStateCursor handling to cursor classes, replace h…
devin-ai-integration[bot] 8828eea
refactor: Clean NO_CURSOR_STATE_KEY from ConcurrentCursor, add tests …
devin-ai-integration[bot] 6b65b7a
style: Fix ruff format issues in factory and test files
devin-ai-integration[bot] 17f857a
fix: Raise error for incompatible cursor types with api_retention_period
devin-ai-integration[bot] 1163395
refactor: Simplify cursor age validation per brianjlai's review
devin-ai-integration[bot] acd7156
fix: Use Cursor type instead of Any for cursor parameter
devin-ai-integration[bot] 8afe8e1
fix: Clear state when falling back to full refresh due to stale cursor
devin-ai-integration[bot] 2a4f385
style: Fix ruff format issues in state clearing code
devin-ai-integration[bot] e4f71ff
fix: Implement tolik0's FinalStateCursor feedback with NO_CURSOR_STAT…
devin-ai-integration[bot] 9340d3c
fix: Update FinalStateCursor test to match new behavior per tolik0's …
devin-ai-integration[bot] e021f58
style: Fix ruff format issues in test file
devin-ai-integration[bot] 1dcc8ab
refactor: Remove early return for NO_CURSOR_STATE_KEY per tolik0's re…
devin-ai-integration[bot] 6d95923
fix: Remove unused NO_CURSOR_STATE_KEY import
devin-ai-integration[bot] a3a2073
fix: Update FinalStateCursor test to match actual ConcurrentCursor be…
devin-ai-integration[bot] 020d2f5
fix: Skip state emission for streams not in configured catalog
devin-ai-integration[bot] 21bb2a9
refactor: Move catalog check to skip entire retention validation for …
devin-ai-integration[bot] 2a2459d
style: Fix ruff format issue in create_state_delegating_stream
devin-ai-integration[bot] 39a2aee
fix: Clear state BEFORE constructing full_refresh_stream in stale cur…
devin-ai-integration[bot] 9021315
Revert "fix: Clear state BEFORE constructing full_refresh_stream in s…
agarctfi 5c6c88b
fix: cursor age validation to clear state before constructing full re…
agarctfi 99119a9
Feat: Add interpolation support for API Retention Period
agarctfi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.