Two bugs fixed in animal selection with checkboxes:
1. Confirmation dialog showed wrong count (e.g., "35 animals" instead of
"2 animals" when only 2 were selected). Fixed by using valid_selected
count in diff.server_count instead of full filter resolution count.
2. Spurious "Selection Changed" dialogs due to race condition in async
hash computation. Fixed by removing client-side hash computation
entirely - it was unnecessary since the server validates selected_ids
directly against the filter resolution.
Changes:
- validation.py: Remove hash comparison in _validate_subset(), validate
IDs directly, fix server_count in diff
- animal_select.py: Remove computeSelectionHash(), hidden roster_hash
field, and related async fetch code
- test_selection_validation.py: Add tests for subset mode validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>