Skip to content

🚀 Hades Agent Release Notes - v2.0.0 (05/25/2026)

Choose a tag to compare

@euvictorldev euvictorldev released this 26 May 02:51
· 3 commits to master since this release

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 the parts objects in real-time and identifies the thought: true flag.
  • 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 via requestAnimationFrame (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 the z-index of the settings menu was fixed (9999) to remain clickable and float correctly.
  • Incorrect Blur Removal: Removed the backdrop-filter: blur directly 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.tsx that injected display: none and the .hidden class 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+B shortcut 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 windowManager closing/minimizing events and the local state cleanup in the useSusurro.ts hook.
  • Synchronization with sessions.json: The end-session handlers 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 in ChatHeader.tsx.
  • geminiLiveService.js Refactoring: 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.css file.
  • Accessibility (a11y): Inclusion and fixing of labels and structures that violated basic accessibility guidelines in the headers.