v5.28.0
2 days ago by Caeleb Balanesi
New Features
- Bidirectional Integration Sync: Integration engine now supports Push/Pull/Bidirectional sync directions with Record Changes detection for MJ-side modifications and separate watermark tracking
- Entity Recycle Bin: New slide-in panel in Entity Viewer for restoring hard-deleted records from RecordChange snapshots with proper permission gating
- Action Pins for Home Dashboard: Pin Actions as quick-launch cards with configurable title, accent color, Font Awesome icons, and preset parameter values
- Enhanced Record Changes Timeline: Comprehensive restore functionality with preview panels and timeline polish for version control
- Playwright Test Harness Callbacks: Added onPageReady callback and fullPage screenshot options for post-render interactions in test automation
Improvements
- HubSpot Connector Expansion: Extended to 130 objects with full field metadata, association CRUD via v4 API, and composite hs_object_id for sync
- YourMembership Connector Overhaul: Enhanced to 228 objects with accurate primary keys across all endpoints and proper error surfacing
- Performance Optimizations: BaseEntity.GetFieldByName and Metadata.EntityByName now use O(1) Map caches instead of O(N) scans, with UUID normalization for cross-database compatibility
- BaseEngine Observable Properties: New ObserveProperty() API with lazy BehaviorSubject backing for zero-cost unobserved properties
- AI Prefill Mode Safety: Set PrefillFallbackMode to Ignore on prompts with AssistantPrefill to prevent JSON truncation on models without native prefill support
- Schema History Tracking: Integration SchemaBuilder now logs DDL history to __mj_integration.SchemaHistory for audit trails
Bug Fixes
- CodeGen Field Type Validation: Added runtime whitelist for LLM-supplied codeType values to prevent batch failures from out-of-enum values
- Migration Timestamp Ordering: Fixed v5.28 migration sequencing to maintain proper execution order
- RSU SQL Execution: Replaced external sqlcmd dependency with in-process SQL execution for CodeGen operations
- Integration Object Classification: Added IsCustom column to distinguish static vs runtime-discovered objects