Repository navigation
Conversation
The file indexer counted source postings published after its captured tail, counted an entry once per repeated source value, and accepted postings that name no entry. Stable files with such postings now fail indexing; live files drop them, because writers link DATA postings before counting the entry. The field-bitmap path tolerates the same live window.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 115 |
| Duplication | 11 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull Request Overview
✅ No blocking issues noticed
No blocking findings were identified. The supplied review agents reported no code-level, requirement-alignment, or quality issues.
Test suggestions
- Postings added after the captured tail are excluded.
- Invalid stable-file source postings are rejected.
- Invalid/live-race source postings are dropped without failure.
- Live bitmap indexing tolerates an entry linked before global counting.
- Repeated source fields count once and retain the earliest timestamp.
- Behavior works for both regular and compact journal layouts.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
# Conflicts: # SOW-status.md
The SOW-0161 change alters what the indexer computes, so cached indexes must miss once. Records generation 5 and its reindex impact in product scope.
# Conflicts: # SOW-status.md
# Conflicts: # .agents/sow/SOW-status.md
Files written by SDK releases before v0.9.0 can carry DATA links to an uncounted entry after a failed append; rejecting them made such archived files unindexable.
# Conflicts: # .agents/sow/SOW-status.md
Stacked on #18. Merge order: #13 → #14 → #15 → #16 → #17 → #18 → this. Completes SOW-0161 (
.agents/sow/done/SOW-0161-20261017-file-indexer-source-posting-membership.md).Decisions for review (agent-chosen, pending your review)
MissingOffset) on a stable file.n_entries.CACHE_VERSIONbump: cached indexes differ only for corrupt files or files with repeated source fields, and a bump would reindex every cached file.Go has no equivalent surface:
journal-indexis Rust-only, and the Go explorer builds no posting-based histogram.Reproduced before the fix (regular and compact)
Validation
journal-index/tests/source_postings.rs: 5 new tests. All fail on the old code and pass on the new.cargo test --workspace: 46 suites pass.Summary by cubic
Fixes the source-timestamp histogram so it counts the captured ENTRY population once per entry, sharing the field-bitmap path's membership rule.
CACHE_VERSIONbumps to 5, so every cached file reindexes once after upgrade.source_postings.rsreproduce the old behavior on live and stable files and pass on the fix;cargo test --workspacepasses 46 suites.Written for commit 0e2f707. Summary will update on new commits.