- Updated the README to reflect the latest version and last updated date, enhancing documentation clarity.
- Introduced a new build_cleaner.py script to automate source list maintenance and self-header includes for YAZE, improving project organization and build efficiency.
- Added detailed instructions for hybrid CLI and GUI workflows, enhancing user guidance for utilizing the z3ed toolset.
- Implemented a new Todo Manager component for managing tasks, including adding, completing, and deleting todos with a user-friendly interface.
- Introduced a Dashboard component to serve as the main entry point for navigating various tools, enhancing user experience.
- Updated layout navigation to switch from the Main Menu to the Dashboard, improving the flow of the application.
- Integrated logging functionality across various components, replacing standard output with structured logging for improved traceability.
- Added z3ed AI Agent test suites for enhanced testing capabilities, including connectivity and command parsing tests.
- Updated the Settings Editor to allow configuration of logging behavior, including log levels and file output options.
- Enhanced the Test Dashboard with tabbed views for better organization of test results, including GUI automation tests.
- Added functionality to save AI agent plans to disk using ProposalRegistry, including directory creation and error handling for failed saves.
- Enhanced AIGUIController with new gRPC GUI automation actions, including click, type, wait, and verify actions, improving interaction capabilities.
- Introduced new command parsing for set-area and replace-tile commands in Tile16ProposalGenerator, allowing for more complex tile modifications.
- Added integration and unit tests for AIGUIController and Tile16ProposalGenerator to ensure robust functionality and error handling.
- Introduced a new 'todo' command in the agent handler for managing tasks and project planning.
- Enhanced argument parsing in PaletteExport and PaletteImport to ensure proper usage and error handling, improving user feedback for command execution.
- Restored a compact single-row layout for the AI provider selection in AgentChatWidget, improving visibility and accessibility.
- Removed redundant RenderAgentConfigPanel to streamline the UI, ensuring the connection header is always visible.
- Updated the collaboration panel to be always visible, enhancing user interaction without the need for collapsing headers.
- Modified the AgentEditor layout to feature a three-column design with always-visible settings and status cards, improving organization and user experience.
- Enhanced the chat history popup with a more compact title and provider dropdown, ensuring buttons are properly spaced and functional.
- Enhanced argument parsing in OverworldGetTile to handle map_id, x, and y parameters more robustly, ensuring proper usage feedback.
- Added functionality to save the modified palette to the ROM in PaletteImport, updating the success message to confirm the save operation and display the filename.
- Implemented functionality to save, load, and delete chat sessions, allowing users to manage their chat history effectively.
- Introduced a new layout for the connection status bar and improved the AI provider selection interface for better visibility.
- Enhanced the UI of the AgentEditor with a modular 3-column layout, including dedicated tabs for system prompts and common tiles, improving user experience and organization.
- Added functionality to save the modified graphics sheet to the ROM after import, ensuring changes are preserved.
- Updated success message to confirm the ROM has been saved and display the filename for better user feedback.
- Added functionality to save the patched ROM after applying the patch, ensuring changes are preserved.
- Updated success message to include the filename of the saved ROM for better user feedback.
- Introduced a new common_tiles.txt file for AI agents, providing a customizable reference for various tile types used in projects.
- Updated CMake configuration to improve asset copying for macOS and non-Apple platforms, ensuring agent assets are correctly placed in the output directory.
- Enhanced the AssetLoader to support additional search paths for asset retrieval, improving cross-platform compatibility.
- Improved error handling in the AgentEditor for missing prompt files, providing clearer instructions for users on file locations and creation.
- Updated the AgentChatWidget to manage AI response states, including a new mechanism for handling pending messages and a thinking animation indicator.
- Improved the initialization of embedded labels for resource tools, ensuring labels are loaded only when necessary, enhancing performance and user experience.
- Refined the chat history synchronization process to ensure timely updates in the chat history popup.
- Enhanced the UI layout for better readability and interaction, including adjustments to button styles and spacing for a more polished appearance.
- Introduced the HandleGuiPlaceTileCommand function to facilitate tile placement via GUI automation, enhancing the tool's capabilities for user interaction.
- Updated the ToolDispatcher to include the new command, allowing for seamless integration into the existing command structure.
- Enhanced the AgentChatWidget to initialize default labels for resource tools, improving the user experience with visual feedback on label loading status.
- Improved error handling and user messaging for better clarity during tile placement operations.
- Added Z3ED command callbacks for managing proposals within the AgentChatWidget, enhancing user interaction with proposal acceptance, rejection, listing, and diff viewing functionalities.
- Updated the AgentChatWidget to initialize default chat sessions and improved the chat history popup with new message sending and snapshot capturing capabilities.
- Enhanced the UI of the AgentEditor with a compact tabbed interface for better organization of bot management and session history, improving overall user experience.
- Introduced the AssetLoader class to facilitate loading assets across different platforms, including macOS and standard relative paths for Windows and Linux.
- Implemented methods for searching asset paths, finding asset files, and loading text files, enhancing the flexibility and usability of asset management.
- Updated CMake configuration to include the new asset_loader source files, ensuring proper integration into the build system.
- Initialized the AgentChatHistoryPopup within the EditorManager, enhancing user interaction by providing quick access to chat history.
- Added keyboard shortcuts for toggling the Chat History Popup and Proposal Drawer, improving workflow efficiency.
- Updated the menu to include options for accessing the Chat History and Proposal Drawer, streamlining user navigation.
- Enhanced the drawing logic to ensure the chat history popup is displayed alongside the proposal drawer for better visibility.
- Introduced the AgentChatHistoryPopup class to provide a sidebar for displaying recent chat messages, improving accessibility and user experience.
- Implemented message filtering options (All, User Only, Agent Only) and auto-scroll functionality for better message management.
- Enhanced the AgentChatWidget to synchronize chat history with the new popup, ensuring users have up-to-date information at their fingertips.
- Updated CMake configuration to include the new build_cleaner target for improved project maintenance.
- Added support for internal message handling in the AgentChatHistoryCodec, allowing messages marked as internal to be excluded from user display.
- Updated the AgentChatWidget to skip rendering internal messages, improving user experience by reducing clutter.
- Introduced a comprehensive bot profile management system in the AgentEditor, enabling users to create, save, load, and manage bot profiles with detailed configurations.
- Enhanced the UI for the AgentEditor, including a new tabbed interface for better organization of settings, prompts, and profiles, along with improved metrics and chat history viewing capabilities.
- Implemented JSON support for bot profile management, allowing for easy export and import of profiles, streamlining user workflows.
- Removed default visibility settings for agent configuration panels in the AgentChatWidget, streamlining the UI.
- Enhanced message rendering with improved spacing and tooltip functionality for better user interaction.
- Updated the AgentEditor to ensure proper initialization of the chat widget, enhancing dependency management.
- Refined the layout of various panels for a more compact and user-friendly experience, including adjustments to input fields and button styles.
- Updated AI model references from "gemini-2.0-flash-exp" to "gemini-2.5-flash" across various components, ensuring compatibility with the latest AI capabilities.
- Enhanced the AgentChatWidget to improve user experience with new features such as message copying, improved input handling, and session management.
- Introduced a chat session management system, allowing users to create and switch between multiple chat sessions seamlessly.
- Improved UI elements for better visibility and interaction, including styled buttons and tooltips for enhanced usability.
- Updated the Agent Editor to improve model and host URL input handling, ensuring better user experience and configuration management.
- Added functionality to load the Gemini API key from the environment, providing users with a seamless way to configure their settings.
- Enhanced the EditorManager to update the agent editor dashboard and ensure the proposal drawer is always drawn, improving the overall UI flow and collaboration features.
- Introduced a comprehensive AI Agent configuration dashboard, allowing users to select providers, models, and adjust settings.
- Updated the AgentChatWidget to include a reactive UI for collaboration status and improved connection management.
- Enhanced the EditorManager to initialize the agent editor with dependencies and streamline the editor selection process.
- Added functionality to clear recent editors upon loading a new ROM, ensuring a fresh start for user sessions.
- Improved the menu structure to include new options for the AI Agent, enhancing user interaction and accessibility.
- Updated the Welcome Screen to include a particle system for enhanced visual effects and a more engaging user experience.
- Reduced the number of triforces for a cleaner layout and adjusted animation settings for subtlety.
- Streamlined project card dimensions and layout for a more compact display, improving accessibility.
- Enhanced the EditorManager menus by adding new items for session management and editor selection, improving workflow efficiency.
- Improved the styling and functionality of buttons and inputs across the UI for better user interaction.
- Updated the EditorManager to streamline the editor selection process, integrating new menu items for ROM and project management.
- Enhanced the welcome screen logic to automatically show the editor selection dialog after loading a ROM, improving user flow.
- Introduced new menu options for saving and validating ROMs, creating backups, and accessing ROM information.
- Improved the editor selection dialog with distinct colors for each editor type, enhancing visual clarity and user interaction.
- Added advanced settings and collaboration features in the Agent Chat Widget, including improved connection management and model selection.
- Expanded the welcome screen with additional project card features and tips for user guidance.
- Implemented an editor selection dialog with a callback for selecting various editor types, improving user interaction.
- Added keyboard shortcuts for quick access to different editors, enhancing workflow efficiency.
- Updated the menu structure to include options for the editor selection dialog and improved session management features.
- Enhanced the welcome screen logic to optionally show the editor selection dialog after loading a ROM, streamlining the user experience.
- Integrated a new `WelcomeScreen` class for a modernized user experience, featuring callbacks for opening ROMs, creating new projects, and opening existing projects.
- Updated the menu structure to include new items for message and music editors, as well as an AI Agent menu for collaboration features.
- Added functionality for hosting and joining collaboration sessions, along with options for network settings and session management.
- Improved the welcome screen display logic to handle recent projects and user interactions more effectively.
- Introduced `UserSettings` class to manage user preferences and settings persistence, including loading and saving functionality.
- Added `WorkspaceManager` class to handle workspace layouts, sessions, and presets, improving user experience with layout management.
- Updated `editor_library.cmake` to include new source files for `UserSettings` and `WorkspaceManager`.
- Added a comprehensive modern menu system in `EditorManager` with File, Edit, View, Workspace, Debug, and Help menus.
- Integrated various menu items with corresponding actions, including project management, editing commands, and debugging tools.
- Enhanced user experience with keyboard shortcuts for common actions and improved menu organization.
- Updated header file to declare the new `BuildModernMenu` function and included necessary dependencies.
- Added `memory_editor.cc` and `memory_editor.h` to implement core memory editing features.
- Introduced a toolbar with options for jumping to addresses, searching patterns, and managing bookmarks.
- Removed the `EnhancedMemoryEditor` class and its associated files, streamlining the memory editing process.
- Updated `editor_library.cmake` and `editor_manager.h` to reflect the new structure and dependencies.
- Moved `menu_builder.cc` to a new `ui` directory for better organization.
- Updated `EditorManager` to generate unique ImGui IDs for multi-session support, ensuring separate window handling.
- Added session ID management in `EditorContext` for improved child panel identification.
- Introduced a new `MenuBuilder` class for streamlined ImGui menu creation, enhancing UI maintainability.
- Updated CI workflow to set `continue-on-error: true` for the z3ed build step, ensuring that the CI process does not fail immediately on build errors.
- Introduced `EnhancedMemoryEditor` class for advanced memory editing capabilities.
- Implemented a toolbar with buttons for jumping to addresses, searching patterns, and managing bookmarks.
- Added popups for address jumping and pattern searching, enhancing user interaction.
- Removed unnecessary style variable pop from `AgentChatWidget` for cleaner UI management.
- Added `AutocompleteEngine` class for managing command and parameter suggestions with fuzzy matching.
- Implemented TUI components for an interactive command input interface with real-time suggestions.
- Enhanced user experience with a quick action menu for common tasks related to ROM manipulation.
- Established a structured approach for contextual help based on user input, improving command discoverability.
- Introduced `alttp_rom_hacking_guide.txt` and `oracle_of_secrets_guide.txt` for detailed ROM structure and hacking techniques.
- Implemented `PromptManager` class to manage loading and retrieving prompts based on different modes.
- Enhanced system prompt with new tool capabilities for hex and palette manipulation, along with TODO management features.
- Updated CLI experience with improved command handling and user guidance for ROM exploration tasks.
- Introduced AdvancedRouter class for routing hex analysis, map editing, and palette analysis responses.
- Added methods for generating GUI automation scripts and synthesizing multi-tool responses.
- Implemented knowledge modules for agent pretraining, covering ROM structure, hex analysis patterns, and tool usage examples.
- Enhanced data handling with structured responses, including summaries, detailed data, and next steps for user guidance.
- Refactored project build process to utilize std::filesystem for cross-platform patch application.
- Implemented fuzzy search functionality for command filtering, allowing for more flexible command matching.
- Updated Command Palette UI to include a scoring system for commands based on usage and recency.
- Added new command categories and improved display organization with a table format.
- Introduced recent and frequent command tracking for better user experience.
- Refactored command handling to support dynamic command execution and improved navigation.
- Added new tabs for Theme Management, Editor Behavior, Performance Settings, and AI Agent Configuration in the SettingsEditor.
- Implemented UI elements for theme selection and management, including current theme display and available themes grid.
- Introduced editor behavior settings such as auto-save options and recent files limit.
- Added performance settings for graphics and memory management.
- Updated keyboard shortcuts section with a placeholder for future customization features.
- Updated NETWORKING.md to reflect the new versioning and provide a comprehensive overview of the z3ed networking, collaboration, and remote access features.
- Introduced detailed architecture descriptions, including communication layers and core components for collaboration.
- Added new CLI commands for hex and palette manipulation, enhancing the functionality of the z3ed CLI.
- Implemented a TODO management system within the CLI for better task tracking and execution planning.
- Improved README.md to include new CLI capabilities and enhancements related to the TODO management system.
- Expanded .gitignore to include additional build artifacts, IDE files, and logs for better project cleanliness.
- Updated Doxyfile to increment project version from 0.3.1 to 0.3.2, reflecting recent changes and improvements.
- Adjusted excluded directories in Doxyfile for clearer documentation generation.
- Updated CMake presets for macOS to include binary directory and cache variables for improved build configuration.
- Added new function schemas for ROM manipulation, including `hex-read`, `hex-write`, `hex-search`, and palette management functions such as `palette-get-colors` and `palette-set-color`.
- Introduced TODO management functions to create, list, and update tasks, enhancing task tracking capabilities within the application.
- Replaced `SDL_Deleter` with `util::SDL_Deleter` in window creation for better utility usage.
- Updated file dialog methods to consistently reference `core::FeatureFlags` for feature flag checks.
- Refactored file extension retrieval in `EditorManager` to use `util::GetFileExtension` for consistency.
- Adjusted `MusicEditor` constructor to accept a ROM pointer, enhancing initialization clarity.
- Commented out unused code in `MusicEditor` to improve readability and maintainability.
- Updated include paths in `overworld_editor.cc` for better organization.
- Cleaned up commented-out code in `editor_selection_dialog.cc` and `welcome_screen.cc` for clarity.
- Added a new `VimMode` class to provide Vim keybindings for terminal interactions, including normal, insert, and visual modes.
- Implemented command history navigation and tab completion features to improve user experience.
- Introduced syntax highlighting for code blocks and various editing commands to enhance functionality.
- Created an enum `VimModeType` to represent different editing modes, facilitating mode management within the CLI.
- Added binary directory paths to CMake presets for better build organization.
- Enhanced the macOS AI preset description to include networking capabilities.
- Refactored MusicEditor constructor to remove ROM dependency, simplifying initialization.
- Cleaned up unused ROM pointer methods in MusicEditor for improved clarity.
- Changed the paths for project logo and icon in Doxyfile to point to the new assets directory.
- Updated CMake configurations to reflect the new locations of resource files, enhancing clarity and maintainability.
- Replaced instances of core utility functions with util functions across various files for consistency in file handling.
- Added new resource files for Windows platform support and removed obsolete resource files, streamlining the build process.
- Refactored RecentFilesManager to utilize the utility function for ensuring the configuration directory exists, enhancing code clarity.
- Updated ThemeManager to use the utility function for retrieving file names, improving consistency across the codebase.
- Adjusted selected_editor initialization in EditorSelectionDialog to use static_cast for better type safety.
- Adjusted paths in CMake files to reference the correct location of `rom_service.proto`.
- Refactored `RomServiceImpl` to use a namespace alias for improved readability and maintainability.
- Updated method parameters in `RomServiceImpl` to utilize the new namespace alias for consistency.
- Added a new `rom_service.proto` file to define the ROM manipulation service, enabling remote operations for reading and writing ROM data.
- Enhanced the `RecentFilesManager` to utilize a utility function for retrieving the configuration directory, improving code clarity.
- Included necessary updates in CMake configurations to integrate the new proto file and ensure proper build setup.
- Replaced `${CMAKE_SOURCE_DIR}` with `${PROJECT_SOURCE_DIR}` in CMake files for consistent path handling.
- Introduced new `todo_commands` and `todo_manager` components to manage TODO items, including creation, listing, updating, and deletion functionalities.
- Added detailed implementations for handling TODO commands in the CLI, improving task management capabilities.
- Enhanced the `TodoManager` class to support persistence and execution planning for TODO items.
- Updated CMake configurations to include new source files related to TODO management, ensuring proper integration into the build system.
- Updated the `MusicEditor` class to integrate a new playback engine (`emu::Apu`) for real-time music playback.
- Refactored UI components to improve the music editing experience, including dynamic song selection and enhanced visualization of music data.
- Introduced methods for starting and stopping playback, along with a new tracker view for displaying song patterns and commands.
- Removed obsolete methods and streamlined the drawing functions for better maintainability and clarity.
- Added detailed implementation plans as comments to guide future development and feature integration.
- Removed references to the old `EnhancedPaletteEditor` and replaced it with the new `PaletteWidget` across various files, including canvas and context menu implementations.
- Updated CMake configurations to include the new `palette_widget` source files, ensuring proper integration into the build system.
- Refactored GUI code to enhance modularity and maintainability, improving the overall user experience in palette management and editing functionalities.
- Introduced new UI components for background rendering and editor selection dialogs, enhancing the application's graphical interface.