- Add three filter dropdowns to domains tab: Consensus Status, Hash Type, and Ownership
- Implement AND logic filtering with immediate table updates for live data
- Create persistent filter settings system saving to cache/filterSettings.json
- Add backend API endpoints: GET/POST /api/domain-filter-settings
- Set default filters to: All Consensus States, Holesail Hash, All Ownership
- Fix infinite scroll state management to handle filter changes properly
- Auto-save filter preferences on change and restore on page load
- Fix backend response handling (removed undefined sdk reference)
Fix critical bugs in domain claim management to ensure data integrity:
- Domain addition: Check for existing claims before adding to prevent duplicates
- Update user's own claim if it exists instead of creating duplicates
- Skip update if hash and SSL flag unchanged (idempotent)
- Never touch other users' claims when updating own claim
- Domain removal: Add strict validation to prevent removing other users' claims
- Only perform full cleanup (atomicDomainCleanup) when user is confirmed resolved claimant
- Require consensus status 'resolved' AND resolvedClaimant matches localWriter
- Improved logging to show which removal path is taken
- Enhanced removeOwnClaimAndVotes with explicit vote key parsing
- Hash preferences cleanup: Fix module path resolution error
- Correct require path from admin-backend/cache.js (../../core/core)
- Add lazy require pattern with error handling to prevent crashes
- Ensure cleanup runs after consensus updates and domain removals
- Add partial domain removal functionality allowing users to remove their own claims and votes even when they're not the resolved claimant
- Add conflict status detection for domains where local peer has claim but another claimant won consensus
- Update UI to display conflict status with red badge
- Enhance API responses with detailed consensus information
- Update all documentation with new features
Changes:
- core/core.js: Add removeOwnClaimAndVotes() function for partial removal
- admin/routes/domains.js: Implement partial/full removal logic in /api/remove-domain
- admin/admin-backend/routes/domains.js: Same partial removal logic for backend routes
- plugins/sdk.js: Update removeDomain() to support partial removal
- admin/ui/config.js: Add conflict status badge and update postFetch
- admin/admin-frontend/ui/config.js: Add conflict status badge and fix status rendering
- admin/utils.js: Add conflict status to utility functions
- admin/admin-frontend/utils.js: Add conflict status to utility functions
- docs/CONSENSUS.md: Add conflict status to resolution states
- docs/README_LONGFORM.md: Add conflict status to consensus states
- docs/RESTAPI.md: Update /api/resolved-domains with new fields and examples
- docs/ARCHITECTURE.md: Document full vs partial removal modes
- docs/OPENAPI.yaml: Update Domain schema and add ConsensusState schema