🚀 Hades Agent Release Notes - v2.0.0 (05/25/2026)
This update brings a massive set of architectural refactors, Electron performance improvements, state stabilization (React/IPC), and UI/UX refinements. Below is the technical and functional breakdown of the changes made.
✨ New Features
Gemini Live: Chain of Thought (Internal Monologue) Filter
- Implementation in
GeminiLiveService: Added a new interception layer in the Gemini API stream. The system now parses thepartsobjects in real-time and identifies thethought: trueflag. - Stream Cleanup: All reasoning content (internal monologue / Chain of Thought) from the AI is now actively filtered and discarded from the output. The frontend now receives strictly the final formatted text (consumer-facing text), eliminating visual "pollution" in the chat from unfinished responses.
LinkedIn Bot: New Generation Structure
- Update to
generation_rules.md: Complete refactoring of the prompt instructions for the LinkedIn bot. The adopted persona is now strictly "Senior Copywriter". - New Structure (Inverted Pyramid): Post generation now mandatorily follows the structure: Hook -> Fact -> Impact -> Application -> CTA/Source -> Hashtags.
- Legacy Removal: Removed the legacy requirement for cover image links, focusing purely on high-readability text.
🛠️ Performance and Core (Electron & IPC)
New Resize and Drag Engine (Window Manager)
- Replacement of legacy
startResizing: Manual mouse event tracking via JavaScript to manage window borders in Electron has been completely discarded. - Native Implementation +
requestAnimationFrame: Developed a new "fire-and-forget" strategy, tied to the Operating System's native optimizations and throttled viarequestAnimationFrame(rAF). The result is the eradication of any lag, stuttering, or UI freezing when resizing the window. - Preload and Drag Refactoring: Updated the IPC logic between core services and preload scripts, substantially improving the window dragging behavior (
-webkit-app-region: drag) in both the MiniChat and Susurro interfaces.
🎨 UI/UX and Styling
Visual Standardization and Sidebars (Susurro & MiniChat)
- Window Parity: Standardized the rendering dimensions of the Susurro and MiniChat interfaces. This architectural change resolves icon misalignments and padding inconsistencies that occurred when switching between modes.
- Navigation Menu Refactoring: The lateral (hamburger) menu was converted to a fluid model, filling the entire height of the screen, utilizing precise absolute positioning (
position: absolute) and high-performance CSS transitions.
Menu and Settings Behavior Fixes
- Z-Index and Overlay: Fixed the bug where the settings menu (
SettingsMenu) wouldn't receive clicks and the screen turned dark. The overlay layer (.settings-overlay) was set to transparent, and thez-indexof the settings menu was fixed (9999) to remain clickable and float correctly. - Incorrect Blur Removal: Removed the
backdrop-filter: blurdirectly from the settings menu (.settings-menu) which was causing unwanted visual artifacts. The background was adjusted for higher native opacity. - Conditional Visibility Removed: Eliminated the imperative logic in
ChatHeader.tsxthat injecteddisplay: noneand the.hiddenclass into the settings button (Settings2) when the menu was open, allowing natural rendering and overlapping behavior.
🐛 Bug Fixes
Global Shortcuts and Navigation
- Alt+B Shortcut Fix (Susurro): The
Alt+Bshortcut now correctly initializes the recording interface without accidentally starting a recording (auto-start), and forces the internal state rendering to 'susurro' via the IPC channel, eliminating the bug where the screen would revert to chat or cause window desynchronization.
Critical Data Persistence in Susurro
- Race Condition Fix: There was an architectural flaw (race condition) between the Electron
windowManagerclosing/minimizing events and the local state cleanup in theuseSusurro.tshook. - Synchronization with
sessions.json: Theend-sessionhandlers were adjusted to block the transcription state cleanup before the session is fully processed, titled, and persisted in the backend store. - Loading Feedback: Implemented visual loading states during audio/transcription finalization to prevent the user from closing the app before the data is safely processed.
Stability and Codebase Cleanup (Tech Debt)
- Compilable JSX Failure Resolved: Fixed a severe DOM tree break caused by improperly closed
<div>tags inChatHeader.tsx. geminiLiveService.jsRefactoring: The massive cyclomatic complexity of this file was reduced by segmenting the parsing responsibilities.- Legacy Files Cleanup: Total removal of imports based on outdated Node.js libraries, and purging of dozens of unused variables in
windowManager.js. - CSS Refinement: Removal of duplicated and redundant selectors from the global
components.cssfile. - Accessibility (a11y): Inclusion and fixing of labels and structures that violated basic accessibility guidelines in the headers.