1.3.4 - Industry-Standard Collar Grouping and Enhanced Layer Metadata - BREAKING CHANGE: Collar grouping now uses hole_id + state instead of coordinates - Real drill hole IDs preserved from API (no more auto-generated DH0001, DH0002) - Hybrid grouping: Primary by (hole_id, state), fallback to coordinates if missing - Cross-state disambiguation: Same hole_id in different states kept separate - COLLAR LAYER: Added comprehensive fields (company_name, final_depth, datum, hole_type, project_name, avg_value) - TRACE LAYER: Added detailed sample fields (sample_id, assay_element, assay_unit, sample_method, company_name, project_name) - Added grey dashed lines for gap segments (no assay data) with "No Assay Data" legend entry - Visual continuity: Full drill hole extent visible from collar to final depth - Enhanced data validation with descriptive error messages for missing fields - Coordinate-based grouping with warning logs for records without hole_id - Auto-generated IDs (AUTO-0001) only for records missing hole_id - Fixed progress dialog staying on top after successful import - Fixed map zoom showing incorrect location (random sea) after assay import - Improved CRS transformation for accurate zoom extent calculation - Better alignment with industry geological data standards - Improved data integrity and traceability for drill hole analysis - Fixed authentication dialog not appearing when user not logged in 1.3.3 - Critical Stability and Authentication Reliability Release - CRITICAL: Fixed token refresh race conditions preventing authentication lockouts - CRITICAL: Fixed logout not clearing refresh state flags (prevents future login failures) - CRITICAL: Fixed division by zero errors in trace visualization calculations - CRITICAL: Fixed zero-length line crashes in Qt geometry layer (segfault prevention) - HIGH: Added comprehensive data validation for trace visualization (missing field detection) - HIGH: Implemented retry logic with exponential backoff for failed token refreshes (2s, 4s, 8s) - HIGH: Added token validation on plugin startup (corrupts tokens automatically cleared) - HIGH: Implemented refresh failure tracking (stops timer after 3 consecutive failures) - MEDIUM: Added subscription expiration check in refresh to prevent wasted API calls - MEDIUM: Enhanced settings cleanup with error handling for corrupted QSettings - Enhanced wake-from-sleep scenario handling with proper token refresh - Improved error messages for subscription expiration vs authentication errors - Added comprehensive authentication flow logging for debugging - Fixed 403 "User access expired" error handling during streaming - Fixed trace line overlapping bug (now shows sequential depth segments) - Fixed gaps in trace lines between collar and first assay interval - Enhanced Qt C++ layer crash prevention with zero-length line detection - Production-ready stability improvements for enterprise deployments 1.3.2 - Authentication and Visualization Enhancements - Added email autofill for login (password never stored for security) - Improved token persistence with proactive refresh at 30 minutes instead of 59 minutes - Enhanced token validation with automatic refresh before API calls - Better token lifecycle management on plugin startup - Added user-configurable trace visibility scale (default 1:50,000) - Custom trace range preset now shows generic names (Range 1, Range 2, etc.) - Custom preset pre-filled with Industry Standard values as template - Comprehensive logging for authentication debugging - Production code cleanup (removed all debug print statements) - Enhanced user experience with smarter login focus management 1.3.0 - Role-Based Access Control and Data Protection Features - Implemented comprehensive role-based access control (tier_1, tier_2, admin) - Added JWT token decoding to extract user roles from Firebase auth tokens - Tier 1 (Free Trial) users limited to 1,000 records per fetch maximum - Disabled "Fetch all records" for Free Trial users with informative messaging - Added real-time validation for record count input with visual feedback - Implemented clickable role badge displaying user tier (Free Trial/Premium/Admin) - Role badge shows detailed plan information popup with features and limitations - Added latitude and longitude fields to location-only data in Identify Results - Fixed tooltip styling for location-only data (white background, dark text) - Enhanced hover tooltips to show collar_id as fallback when hole_id is empty - Fixed QgsField deprecation warning by migrating to QMetaType.Type - Improved "Reset All" button to properly re-enable record count field - Fixed text field staying disabled after blocking "Fetch all records" for Free Trial - Added proper error handling and user-friendly messages for all role restrictions - Enhanced security with foundational logic for future tier-based feature controls 1.2.0 - Major UI/UX Enhancements and Authentication Improvements - Fixed critical dropdown focus issues with proper keyboard input handling - Implemented chip display limitations (max 4 + "view all" button) - Added searchable hole types dropdown with static data (no API calls) - Enhanced multi-selection with persistent popup behavior - Improved table display: N/A for null values, resizable columns, hover tooltips - Migrated plugin messages from QGIS interface to in-plugin message bar - Fixed authentication token persistence across plugin sessions - Added automatic token validation on plugin open/focus - Implemented direct login dialog flow for better UX - Added informational icons with help popups for feature explanations - Fixed incorrect logout messages when user was never logged in - Enhanced error handling and fallback mechanisms throughout - Removed debug print statements and improved code quality
yes
needle11
2025-11-09T21:24:28.721324+00:00
3.0.0
3.99.0
None
no
Plugin Tags