forked from DevRoots-Studio/SelfHost-Helper
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
120 lines (104 loc) · 8.57 KB
/
ChangeLog
File metadata and controls
120 lines (104 loc) · 8.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Change Log
> release "v0.8.0"
- **High-Performance Resource Monitoring (Native C++ Hook)**:
- Transitioned from high-overhead PowerShell polling (~2-3s delay) to instantaneous native C++ Job Object accounting.
- Resource retrieval is now O(1), providing precise CPU and Memory metrics with zero impact on the host system.
- **Process Takeover & Recovery (Named Job Objects)**:
- Implemented a "Process Takeover" system using Named Job Objects (`Global\SelfHostHelper_Project_{uuid}`).
- The helper can now re-link to running project processes after a crash or manual app restart, maintaining control and monitoring continuity.
- **Reliable Process Termination**:
- Replaced manual process tree walking with `TerminateJobObject`, ensuring 100% of sub-processes (Vite, Nodemon, database workers) are killed instantly and reliably.
- **IPC & UI Performance**:
- **Log Batching**: Implemented a 100ms buffering system for logs. High-frequency log output (like Vite startup) no longer saturates the IPC bridge or freezes the UI.
- **Fast System Probing**: Switched the system process scanner to `wmic`, reducing project startup and "Ghost Process" detection time by over 90%.
- **Architectural Polish**:
- Migrated the internal logging system to asynchronous writable streams for zero-stutter I/O.
- Improved health poller consistency using direct kernel-level process counts.
> release "v0.7.5"
- **Interactive Server Reordering**: Implemented drag-and-drop server reordering in the sidebar for a fully customizable workspace.
- **Persistent Ordering System**: Added a new `order` database column to ensure your custom server arrangements are saved permanently.
- **Improved Log Isolation & Purging**:
- Fixed Console Clear to permanently purge logs from both frontend and backend buffers.
- Automatic log history cleanup on project deletion to eliminate data leakage between servers when IDs are recycled.
- **Real-Time Sidebar Sync**:
- Added a backend-to-frontend event system (`projects:list-changed`) that triggers instant sidebar updates when server names or settings change.
- Implemented automatic cache-busting for server icons to ensure visual updates appear immediately without app restarts.
- **Database Resilience**:
- Integrated persistent UUIDs for every project to ensure robust identification and prevent state collisions.
- Added a smart post-sync migration engine to safely update existing production databases with new required fields without data loss.
> release "v0.7.0"
- **Bulletproof Process Cleanup (Windows Job Objects)**:
- Developed and integrated a native C++ module to leverage Windows Job Objects.
- Guaranteed termination: All child and descendant processes are now hardware-terminated by the OS if the main application exits or crashes.
- No more Orphans: Completely eliminates the possibility of orphaned processes or "zombies" on Windows.
- **Robust Media & Icon Engine**:
- Rewrote the `media://` protocol handler for 100% reliability across all Windows drive letters (G:, D:, etc.).
- Added support for multiple path formats (encoded, raw, and hostname-based) to ensure cross-partition icons load every time.
- Enhanced MIME type detection for expanded image format support (.bmp, .tiff, etc.).
- **UI Responsiveness & Performance**:
- **Input Debouncing**: Added intelligent debouncing (400ms) to icon and path inputs. Prevents UI "freezing" by waiting for the user to finish typing before attempting to load or validate files.
- **Fast Exit Logic**: Streamlined the application shutdown sequence for a snappier feel while safely cleaning up database states.
- **Improved Windows Native Integration**:
- Implemented ASAR-aware native module loading for seamless production builds.
- Added smart path sanitization for pasted file paths (stripping quotes and trailing slashes).
- **Bug Fixes & Stability**:
- Resolved `net::ERR_FILE_NOT_FOUND` when accessing icons on non-system partitions.
- Fixed a critical issue where rapid typing in settings could cause the main process to hang.
> release "v0.5.0"
- **State Management Overhaul (Jotai)**:
- Migrated entire frontend to Jotai atoms for robust global state management.
- Significant performance gains by eliminating redundant re-renders in the project list and status updates.
- **Enhanced System Tray Integration**:
- **Dynamic Context Menu**: Real-time sync between project status and tray controls.
- **Bulk Management**: Introduced "Start All" and "Stop All" functionality directly from the tray.
- **Granular Control**: Individual server submenus for Start/Stop/Restart without opening the main window.
- **Real-Time Notification System**:
- Integrated `react-toastify` for instant visual feedback on all major actions.
- Passive notifications: Get notified of status changes even if they were triggered from the tray.
- Success/Error alerts for file operations, project management, and global settings.
- **Frameless Window Experience**:
- Implemented modern frameless design with custom drag regions.
- Visual Polish: Added backdrop-blur/glassmorphism effects to the sidebar for a premium aesthetic.
- Smart Layout: Fixed component overlaps with system controls for a cleaner interface.
- **Project Enhancements**:
- **Minecraft Server Support**: Added dedicated support with optimized Java startup scripts.
- **Improved Settings Flow**: Project settings dialog now stays open after save for better iterative configuration.
- **Component Refactoring**: Cleaned up the codebase by extracting dialogs (e.g., `AddProjectDialog`) into dedicated components.
- **Stability & Internal Fixes**:
- Resolved race conditions in process resource monitoring.
- Hardened status broadcasting system for 100% consistency across all application layers.
> release "v0.4.6"
- **Media Protocol Improvements**: Fixed a critical bug where project icons on non-system partitions (e.g., G:, D:) or in folders with spaces failed to render. Improved URL decoding logic in the backend handlers.
> release "v0.4.5"
- **Full Material Icon Theme Integration**:
- Integrated 1,100+ high-quality SVG icons.
- Comprehensive mapping logic for 3,100+ file extensions, filenames, and folder structures.
- Robust icon fallback system using Lucide for generic files/folders.
- **Improved Asset Loading**: Hardened `media://app` protocol for secure and fast local asset loading.
- **Project-Specific Editor State**: Isolated "last opened file" state per project, ensuring a clean context when switching between servers.
- **Visual Polish**: Replaced generic file tree icons with context-aware Material Icons and improved animations.
- **Framer Motion Upgrade**: Updated all motion components to use `motion.create()` for better performance and future-proofing.
- **Bug Fixes**:
- Resolved `net::ERR_FILE_NOT_FOUND` and `net::ERR_UNEXPECTED` errors on Windows.
- Fixed `ReferenceError` for `useMemo` in the File Tree.
> release "v0.4.2"
- **Major Process Management Upgrade**: Replaced basic PID tracking with robust Process Groups (Unix) and PowerShell-based tree inspection (Windows).
- **Accurate Resource Aggregation**: Real-time CPU and RAM usage now sums up the entire process tree (Vite, Nodemon, child shells, etc.).
- **Dynamic Supervisor Detection**: Intelligent detection of process managers (Vite, Nodemon, PM2, etc.) via `package.json` resolution and live tree inspection.
- **Tree-Safe Shutdown**: Guaranteed cleanup of all child processes when stopping a project, preventing orphaned "zombies".
- **Performance Optimizations**: Snapshot-based process lookup and batch `pidusage` for minimal overhead.
> release "v0.4.0"
- **New Settings Page**: Dedicated app settings page for global configurations.
- **Zombie Process Protection**: Detect and clean up processes from previous sessions/crashes.
- **Enhanced Project Settings**: Support for Project Types, Descriptions, and Custom Icons.
- **Smart Script Suggestions**: Automatic startup commands based on project type, including dependency installation (npm, pip, go).
- **Custom Icon Support**: Secure `media://` protocol for loading local project icons with full Windows path support.
- **Dynamic Versioning**: Settings page now displays the real app version from `package.json`.
- **Bug Fixes**:
- Resolved `net::ERR_UNEXPECTED` for local resources.
- Fixed Xterm.js "dimensions of undefined" resizing error.
- Corrected `ReferenceError` in Project Settings.
- Fixed production routing issues by switching to `HashRouter`.
- Updated Content Security Policy (CSP) for secure image loading.
- **Command History**: Input commands history (Ctrl + ↑/↓).
- **Console Copy**: Ability to copy console output directly via Ctrl+C.