fix(search): honor case-sensitive fields#139
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🧰 Additional context used📓 Path-based instructions (2)tests/cli.rs📄 CodeRabbit inference engine (AGENTS.md)
Files:
src/cli.rs📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (15)📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
📚 Learning: 2026-03-15T22:40:42.886ZApplied to files:
🔇 Additional comments (3)
📝 WalkthroughWalkthroughRemoved conditional branches gating field searches when Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Requires tracing through each field branch removal to confirm Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
There was a problem hiding this comment.
No issues found across 2 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Requires human review: This PR modifies core search matching logic and conditional flows within a primary CLI function, which requires human verification for correctness.
Architecture diagram
sequenceDiagram
participant User
participant CLI as CLI Entrypoint
participant Search as Search Logic (puzzle_matches)
participant Matcher as Matcher (matches_in)
participant Registry as Match Registry (record_match)
User->>CLI: boha search --case-sensitive "1BgGZ"
CLI->>Search: puzzle_matches(puzzle, case_sensitive=true)
Note over Search,Matcher: NEW: All fields are now checked regardless of case-sensitivity
Search->>Matcher: matches_in(puzzle.id)
opt Match Found
Matcher-->>Search: position
Search->>Registry: record_match("id", pos, 0)
end
Search->>Matcher: CHANGED: matches_in(puzzle.address.value)
alt Case-Sensitive Match
Matcher-->>Search: position
Search->>Registry: record_match("address.value", pos, 1)
else No Match
Matcher-->>Search: None
end
Search->>Matcher: CHANGED: matches_in(puzzle.pubkey.value)
opt Match Found
Matcher-->>Search: position
Search->>Registry: record_match("pubkey.value", pos, 4)
end
Note over Search,Matcher: Loop continues for Hash160, Keys, WIF, and TXIDs
Search-->>CLI: Return matches
CLI-->>User: Display results (e.g., "1BgGZ9tc...")
Closes #138
--case-sensitivewas narrowing the search surface instead of just changing the comparison mode, so exact-case address prefixes like1BgGZmissed. The matcher now checks the same fields in both modes, and the CLI test covers the address case plus a real no-match variant.