Repository navigation
fix: plan and acquire daily backfills from declared sessions - #92
Merged
Merged
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #91
Outcome
The separate update/backfill range planner now uses authoritative daily exchange sessions with shared FeedSpec resolution: explicit selection, declared feed/stored metadata, then NYSE. Explicit None disables schedule classification; 24/7 preserves real weekend gaps. It covers leading/trailing ranges and entirely absent datasets, not just gaps between observations.
Daily range bounds are inclusive UTC-midnight session labels, and size_days/tolerance_days count missing selected sessions. Legacy exclude_weekends=False retains continuous days absent a canonical declaration; omission and True follow NYSE. Intraday/weekly legacy paths are not claimed repaired, and named declarations for those paths are rejected rather than ignored.
Backfill matches daily labels rather than midnight event bounds, so non-midnight provider bars are retained. It only acquires scheduled rows and cannot insert provider observations for closures inside a range. Declared label timezone survives storage's canonical UTC reads. Classification itself never fills or writes storage.
Reproduction and verification
Review and assistance
AI-assisted source, regressions and prose under maintainer direction. Owner reviewed schedule independence from observed dates, range units/bounds, declared-null propagation, storage/backend parity, timezone restoration, provider-row selection and legacy compatibility. Full harmonization still requires the separate intraday/session API and roll-calendar repairs.