feat: add historical state resolver with point-in-time queries
Implement resolve_filter() to resolve animals matching FilterAST at ts_utc. Uses interval tables for historical location, sex, life_stage, and tags. Includes roster hash computation using xxhash64. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
10
PLAN.md
10
PLAN.md
@@ -198,11 +198,11 @@ Check off items as completed. Each phase builds on the previous.
|
||||
- [x] **Commit checkpoint**
|
||||
|
||||
### Step 5.2: Historical State Resolver
|
||||
- [ ] Update `selection/resolver.py` for point-in-time resolution
|
||||
- [ ] Use interval tables for historical state (spec §7 query pattern)
|
||||
- [ ] Create `selection/hash.py` with roster hash (xxhash64)
|
||||
- [ ] Write tests: resolver returns correct animals before/after events
|
||||
- [ ] **Commit checkpoint**
|
||||
- [x] Update `selection/resolver.py` for point-in-time resolution
|
||||
- [x] Use interval tables for historical state (spec §7 query pattern)
|
||||
- [x] Create `selection/hash.py` with roster hash (xxhash64)
|
||||
- [x] Write tests: resolver returns correct animals before/after events
|
||||
- [x] **Commit checkpoint**
|
||||
|
||||
### Step 5.3: Optimistic Locking
|
||||
- [ ] Create `selection/validation.py` for selection validation
|
||||
|
||||
Reference in New Issue
Block a user