Skip to content

v1.2.0

Choose a tag to compare

@gOOvER gOOvER released this 27 Sep 08:22
· 55 commits to main since this release

Removed

  • Redundant Manual Refresh Buttons (frontend/src/views/ToolsView.tsx, RefineryView.tsx, BlueprintsView.tsx, SettingsView.tsx, Views/MainWindow.axaml):
    • Removed the unnecessary "Aktualisieren" refresh button from the Tools & Maintenance header banner (ToolsView), as status is automatically loaded on mount and kept in sync via reactive IPC events (TOOLS_UPDATED) and action callbacks.
    • Removed isolated, redundant refresh buttons from the Refinery tab bar (RefineryView), Blueprints category bar (BlueprintsView), OCR configuration header (SettingsView), and the desktop Avalonia tools header (MainWindow.axaml).

Added

  • Full GPU Driver & DirectX Shader Cache Purge (Core/MaintenanceService.cs, frontend/src/views/ToolsView.tsx):
    • Expanded shader cache detection and cleanup beyond Star Citizen client folders to include NVIDIA driver caches (%LOCALAPPDATA%\NVIDIA\DXCache, GLCache, %APPDATA%\NVIDIA\ComputeCache, NV_Cache), Windows DirectX shader cache (%LOCALAPPDATA%\D3DSCache), and AMD Radeon driver caches (AMD\DxCache, GLCache).
    • Implemented resilient per-file deletion with active-handle protection, safely clearing driver cache directories while skipping files held open by the Windows Desktop Window Manager (DWM).
    • Forces Star Citizen and the GPU driver to perform a complete, clean shader recompilation on launch, resolving micro-stuttering and preventing stale GPU binary blobs from being reused.
  • Shader Cache & Crash Dump Maintenance Feedback & Game Guard (Core/MaintenanceService.cs, Core/Photino/PhotinoBridge.cs, frontend/src/views/ToolsView.tsx):
    • Added active game detection (IsStarCitizenRunning) to prevent silent deletion failures and file-lock errors while Star Citizen is actively running, warning pilots with an immediate in-app and in-game prompt to exit the game first.
    • Upgraded file deletion routines in CleanShaderCache and CleanCrashDumps to recursively clean individual files and reset attributes, returning exact freed megabytes and deleted file counts.
    • Connected native Win32 Always-On-Top Toast Overlay (🧹 SHADER-CACHE GELEERT / ⚠️ SHADER-CACHE) and enhanced in-app toast styling with distinct warning/error badges (AlertTriangle).
    • Added automatic TOOLS_UPDATED IPC event broadcast so all maintenance cards refresh disk metrics immediately upon clearing.
  • Automatic Screenshot Loadout Reading & In-Game Toast Notifications (Core/Ocr/ScreenshotLoadoutWatcher.cs, Core/Ocr/OcrEngineService.cs, Core/Photino/PhotinoBridge.cs):
    • Implemented robust automatic reading of Star Citizen screenshots with multi-event watching (Created, Changed, Renamed) and size-stabilizing file readiness polling (WaitForFileReadyAsync), eliminating file-locking races and premature reads while the game is writing the file.
    • Added intelligent screenshot folder auto-detection that prioritizes the active Settings.LogPath directory as well as J:\StarCitizen\LIVE\ScreenShots before scanning standard system paths.
    • Connected the native Win32 Always-On-Top Toast Overlay (🛸 SCHIFFS-AUSRÜSTUNG ERFASST) to display recognized ship loadouts, component counts, and livery names directly over the game window upon detection (via watcher, manual scan, or clipboard).
    • Switched OcrEngineService.RecognizeImageFileAsync to FileShare.ReadWrite to allow seamless parallel reads of newly captured screenshots.
  • Robust ASOP Loadout Estimate Extraction (Core/Ocr/ScreenshotLoadoutWatcher.cs):
    • Overhauled OCR parsing for ASOP Fleet Manager "LOADOUT ESTIMATE" screens with paired NAME/TYPE column parsing and comprehensive Star Citizen component fallbacks.
    • Fixed tree marker regex stripping so words beginning with 'L' (Liveries, Lightstrike, Laser) are preserved intact.
    • Corrected model number normalization so weapons with trailing zeros (e.g. Mantis GT-220) maintain their exact designation.
  • Automatic GPS Waypoint Recording & POI Editing (Core/PoiClipboardWatcher.cs, Core/Photino/PhotinoBridge.cs, frontend/src/components/LocationDetectedPopup.tsx, frontend/src/views/PlacesView.tsx):
    • Automatically records and saves detected /showlocation coordinates directly into the SQLite database as permanent GPS waypoints without requiring manual form entry.
    • Automatically detects nearby landmarks/POIs (within 15km) to provide smart names like GPS: <Landmark> or GPS HH:mm:ss.
    • Built-in duplicate protection ensures locations copied within 30m of an existing waypoint do not create redundant entries.
    • Displays the native Win32 Always-On-Top Toast Overlay (📍 GPS-WEGPUNKT HINZUGEFÜGT) and broadcasts USER_POIS_UPDATED so all views update in real time.
    • Fixed viewport overlay positioning and clipping by lifting LocationDetectedPopup to the application root container with dedicated fixed coordinates on the bottom right, eliminating sidebar collision.
    • Added an inline rename/edit drawer directly in the GPS HUD popup to adjust name, category, and notes on the fly.
    • Added full POI editing and renaming support with an Edit action on all POI cards in PlacesView.
  • Optional HOTAS & Joystick Profiler with 1-Click Swap & Bindings Explorer (Core/Hotas/, Core/Settings.cs, Core/Photino/PhotinoBridge.cs, frontend/src/views/ToolsView.tsx, frontend/src/views/SettingsView.tsx):
    • Implemented a complete HOTAS & Joystick profiling subsystem for Star Citizen pilots inspired by controls reverse-engineering.
    • Automatically parses the live actionmaps.xml profile, extracting connected joysticks, deadzones per axis, exponential sensitivity curves, and custom rebinds.
    • Detects USB Vendor and Product IDs directly from Star Citizen DirectInput GUIDs with friendly manufacturer recognition (Thrustmaster, VKB-Sim, Virpil, Logitech, Saitek, Winwing, etc.).
    • Correlates connected joysticks with Star Citizen startup log notices (- Connected joystick0: <Product> <GUID>) to detect Windows USB device order swaps (js1 ⇄ js2).
    • Provides two instant swap remedies: a 1-click automatic actionmaps.xml profile retargeting tool with automatic pre-swap backups, and a one-click copy button for the in-game console command pp_resortdevices joystick 1 2 (no game restart required).
    • Added an interactive Keybindings Explorer with real-time text search, per-device filters (Stick 1, Stick 2, Keyboard, Mouse), category filters (Flight, Combat, Systems, Industrial, Scanner, General), and friendly German action labels.
    • Supports one-click profile export to user\client\0\controls\mappings\layout_<name>_exported.xml with standard CustomisationUIHeader metadata.
    • Configurable as an optional subsystem via HotasProfilerEnabled in Settings and accessible as a dedicated tab in ToolsView.
  • Multi-Crew Boarding & Ship Comms Channel Recognition (Core/ShipChannel.cs, Core/LogParser.cs):
    • Overhauled ship communication channel parsing to detect when crew members board or leave player-owned ships (Painful_Pilot has joined the channel 'Argo MOTH : gOOvER'), or when the player boards multi-crew vessels owned by other pilots (RSI Perseus : GHO5T-04K).
    • Stripped preceding timestamps and message prefixes from raw channel log lines so handles are cleanly extracted even outside notification wrappers.
    • Added channel event debouncing (15s window) to eliminate duplicate events caused by game engine HUD queues and fades.
    • Accurately tracks active crew members in session metadata, Events View, and Blackbox.
  • ASOP Fleet & Insurance Entitlement Tracking (Core/LogParser.cs, Core/Photino/PhotinoBridge.cs, frontend/src/views/FleetView.tsx, frontend/src/services/photinoBridge.ts):
    • Implemented automatic extraction of ASOP terminal query notices (<VehicleListQuery>), capturing total owned fleet vehicles and currently active insurance entitlements.
    • Added live ASOP telemetry badge in FleetView header displaying real-time ready-vs-claim ship count (e.g. ASOP: 19/21 bereit (2 Claim)).
    • Logs session vehicle events when ASOP fleet counts update.
  • Modern Star Citizen 4.x Hangar Status Detection (Core/LogParser.cs):
    • Added recognition for modern 4.x ATC notices including Joined hangar queue and Hangar Request Completed.
  • Kiosk Item Sale Tracking in Ledger & Financial History (Core/LogParser.cs, Models/MarketModels.cs, Core/Database.cs):
    • Implemented end-to-end tracking for selling items (ship components, weapons, armor, containers) at kiosks and shops via SShopSellRequest correlated with RmShopFlowResponse (type[Selling], result[Success]).
    • Added ConfirmedSaleRecord model and ConfirmedSales collection in LogParser.
    • Added automatic "Item verkauft" ledger bookings to LedgerRecords, ensuring income from kiosk sales is accounted for in financial overviews and ledger timelines alongside purchases and commodity trading.
  • Detailed Mission Objective Step Tracking & Progress Badges (Core/LogParser.cs, Core/Photino/PhotinoBridge.cs, frontend/src/views/MissionsView.tsx, frontend/src/services/photinoBridge.ts):
    • Integrated intermediate mission objective progress tracking from <ObjectiveUpserted> events (MISSION_OBJECTIVE_STATE_COMPLETED).
    • Added smart objective label detection identifying specific actions: cargo pickups (Fracht abgeholt), deliveries (Fracht geliefert), phase completions (Phase abgeschlossen), and combat target eliminations (Ziel eliminiert).
    • Emits real-time EventKind.Mission log entries in the Live Log and Events View displaying progress counters (e.g. Teilziel: Fracht abgeholt (1/2) · Junior | Stellar Small Haul).
    • Added stepsDone, stepsTotal, and progressText to MissionItemDto and displayed dynamic progress badges on active contracts in MissionsView.

Fixed

  • Windows 11 Identification from StarEngine Logs (Core/MaintenanceService.cs, frontend/src/views/ToolsView.tsx):
    • Corrected OS version detection where StarEngine / CryEngine logs the legacy NT kernel major version as Windows 10 64 bit (build 10.0.X). Implemented NormalizeWindowsVersion to accurately classify all NT builds >= 22000 (e.g. build 26200 / 24H2) as Windows 11 in system diagnostics and the frontend hardware badge.
  • Ship Equipment Detection & ASOP Loadout Estimate Column OCR Overhaul (Core/Ocr/ScreenshotLoadoutWatcher.cs, frontend/src/components/ShipLoadoutModal.tsx):
    • Overhauled ASOP Terminal "LOADOUT ESTIMATE" scanning to utilize a two-column paired parsing algorithm matching items under the NAME column directly with corresponding rows in the TYPE column (Cooler, Jump Module, Power Plant, Quantum Drives, Radar, Shield Generator, Tractor Beam, Turret, Gun, Missile Rack, Liveries), resolving the issue where only 5 components were detected for vessels like the Cutlass Black.
    • Expanded the comprehensive Star Citizen component keyword fallback catalog with stock Cutlass components and standard equipment (ColdSnap, Odyssey, Chernykh, CoverAll, SureGrip S1, VariPuck S3 Gimbal, MSD-442, MSD-423).
    • Fixed tree-marker regex in OCR line cleaning (^(?:[><|•·\*\.└├│\-]+|L\s+)[\s\-]*) which previously stripped leading capital letters L from regular words like Liveries (iveries), Lightstrike, and Laser.
    • Fixed model number normalization bug where unconditionally stripping 0 truncated weapon and shield models ending with zero (e.g. Mantis GT-220 truncated to Mantis GT-22, preventing Pips projectile velocity matching).
    • Preserved balanced parentheses in component specification tags (e.g. (Civ/2/C), (Mil/2/B)).
    • Added OCR typo normalizations for SureGrip Sl -> SureGrip S1 and VariPuck sa -> VariPuck S3.
  • Party Join/Leave Log Contamination (Core/LogParser.cs):
    • Prevented ship channel join/leave notifications from falsely triggering party member join or leave log entries.
  • Premature Contract Completion Bug on Multi-Step Missions (Core/LogParser.cs):
    • Fixed a critical issue where completing an initial intermediate objective (such as the first pickup of a multi-drop hauling contract) prematurely marked the entire mission as Completed, causing active missions to vanish from the active contracts view.
    • Contracts now correctly remain InProgress until all objective steps are fulfilled or official contract completion notifications are received.
    • Added _contractObjectives.Clear() to LogParser.Reset() to prevent cross-session objective state pollution.
  • Bumped SQLite CurrentParserVersion to 41 in Core/Database.cs to re-index historical sessions with multi-crew boarding events, ASOP fleet stats, accurate contract states, and confirmed sale ledger entries.

🛡️ Security & Integrity

  • SHA-256 (SCLogMate.exe): FEA71CD35F68B4039A9691D673F05DAE95FDC14FC3284049F67F8BC947E15F64
  • VirusTotal Report: Scan Results

📋 Full Changelog: https://github.com/gOOvER/SCLogMate/blob/main/CHANGELOG.md