Appearance
Changelog
All notable changes to Xentral will be documented here.
[Unreleased]
Added
Data Integrity Enhancements
- Dashboard action (
runFromDashboard) for running integrity audits directly from Convex dashboard - Run mode enum (
checkOnly,dryRunAutoFix,executeAutoFix) for auto-fix support inrunAll - Discord alerts now enabled by default (send unless explicitly disabled)
- Return validators added to filter queries for type safety
Migration Tools
import-and-merge.ts: Full migration script with ID preservation viaconvex importexport-data.ts: Export deployment data for comparisonmigrationHelper.tsandmigrationMutations.ts: Convex helpers for migration operations- Live verification with
--liveflag (verifies against database, not stale exports) --skip-insertsoption to apply only UPDATE actions--skip-importand--skip-mergeoptions for granular control- Large table handling: auditTrail skipped, sessions paginated
- Retry logic for timeout errors
Changed
- Schema: reverted
avatarUrlback tothumbnailUrlfor whiteboard tables - Migration loader: direct HTTP queries to local Convex with timeout handling
Performance
Planner Memory Optimization (60% reduction)
- Immer middleware for Zustand store - direct mutations reduce GC pressure by ~90%
- Skip conditions for always-on Convex queries (getFilterOptions, getMilestoneDisplayData, getAssigneesList)
- Consolidated 48 selectors into 4 useShallow groups (~90% subscription overhead reduction)
- TTL-based error state cleanup (clears stale errors every 5 minutes)
- Results: 188.9 MB → 75 MB after navigation, +91 MB growth → +4.5 MB
Convex Query Optimization
- Batch N+1 queries in
getUniqueDesignElementsForFilter - Composite indexes for milestone filter queries
- New composite index for coordinator+milestone+active queries
Integrity Audit
- Fetch-once pattern with parallel validation (~24 sequential queries → ~8 parallel)
- Full audit now completes in ~3s (fetch ~3s, validation ~70ms)
- Compact Discord summary format (fixes 400 error on large datasets)
Fixed
- API: moved Convex client to module scope in sprint-presentation generate route
- Migration: correct Convex internal API signature for pagination
[1.1.0] - 2026-01-26
Added
Batch Operations
- Batch Edit DODs Modal for editing multiple DOD fields at once
- Batch update mutation (
batchUpdateDods) for bulk DOD editing - Batch Confirm button for DOD cards in selection action bar
- Edit button in card selection action bar to open batch edit modal
Data Integrity System
- Complete data integrity architecture implementation
- Integrity audit with automatic fix mutations for error repair
- Name consistency validators with optimistic state race condition fix
- Total time consistency validator
- Denormalization triggers for name sync
- Discord Bot API integration for integrity alerts with styled embeds and user mentions
- Biome GritQL lint rules for Convex query patterns
Planner V2 Enhancements
- Click-to-select for DOD and commitment plan cards
- Improved card selection UX with hover/selected ring styles
- Dynamic remaining estimate calculation for time sliders
- Stacked bar visualization for time sliders
- Overtime warning styling with hazard icons
XILO Video System
- XILO cell mode prop for split content/buttons layout
- Fullscreen toggle button for video viewer
- Whiteboard thumbnail: mouse wheel zoom control and hover-to-zoom
- XILO cell embedded under issue name in issue-solution-cell
- Dark mode support for timeline, sidebar, toolbar, and controls
- TARGET link functionality for XILO records with bidirectional sync
- Importance badge on slide sidebar chips and annotation view tooltip
- Auto-show issue panel on hover with delete toast warnings
- Importance selection without requiring target linking
- Chain group chip display
- Loop machine functionality
Resource Management
- Aggregates stale indicator with optimized refresh
- Read from aggregates in MilestoneView V1
- Editable commitment plan UI in ResourceDrawer
- Redesigned drawer with issue-centric layout
Infrastructure
- Environment switcher for production/staging/local
- Sync-env-to-convex PowerShell script for env var management
- Production deployment setup with R2 custom domain
- Convex backup merge script with README
- XILO data migration script with ID remapping
- Smart API routing with enhanced network detection
- 30-minute browser cache for network detection API
- Experimental routes section in navigation sidebar
Changed
- TimeSliderPopover: improved UX with editable floating label and better popover behavior
- BatchEditDodsModal: simplified UI with toggle confirm button and direct inputs
- CardSelectionActionBar: removed delete confirmation modal for immediate delete
- CardSelectionActionBar: removed Move to Sprint functionality
- Removed XILO column from planner table configuration
- Restructured integrityAudit to granular check-per-file pattern
- Store integrity check results as separate documents
- Consolidated assignee avatar handling and schema fields
- Replaced
assignee.namewithassignee.userNameacross codebase - XILO browser: replaced filter inputs with rich components, added clickable rows
Fixed
- ResourceDrawer: improved loading states and Convex caching
- TimeSliderPopover: capacity warning bug and drag handle improvements
- AssigneeCard: estimateTimeConfirmStatus added to memo comparison
- Convex TS2589 deep type instantiation errors resolved
- Added compound indexes for customFieldLinks, assigneeView, and assigneeReservations queries
- Refactored assignee queries to use indexes
- Index usage for getAllUserDepartments query
- Hooks: explicit type to prevent deep instantiation
- Shared: networkDetection module export
- ResizeObserver error during drag-drop transitions in planner-v2
- Card deselection when entering edit mode in CommitmentPlanCard
- Docker build failures for dev deployment
- Hydration mismatch on MilestoneSelectChip data attributes
- XILO annotator: sidebar updates when issue is unlinked
- XILO: chain link icon positioning when zoomed
- XILO: chainGroupId sync in two-way persistence
- XILO: reply input color in light/dark mode
- XILO: import dialog theme awareness
- XILO: PopupView clipping at timeline edges
- DOD notifications update when DOD submitted from form
- CORS duplication resolved with real-time upload progress tracking
Performance
- Planning history: optimized initial load, removed skeleton loading
- Planner-v2: optimized card selection and table virtualization
- Replaced dynamic lucide-react import with static imports
Removed
- DODBackLog feature (dead code cleanup)
- useDodBacklog hook
- DODBackLog UI components
- BacklogCell usage from planner table
[1.0.0] - 2026-01-26
Added
- Initial release
- Core platform features
- User authentication
- Dashboard