Commit Graph

33 Commits

Author SHA1 Message Date
scawful
61c99ecfcd feat: enhance CMake configuration and CI workflow for AI features
- Added new build options for agent UI and remote automation in CMake presets, improving modularity.
- Updated CI workflow to enable AI runtime and agent UI during builds, ensuring compatibility with new features.
- Adjusted default Ollama model in scripts and documentation to reflect the lightweight version used in CI.
- Enhanced agent test suite script to support model overrides, improving flexibility for testing scenarios.
2025-11-16 21:36:04 -05:00
scawful
a5d98ad83c refactor: reorganize submodule structure and enhance CMake configuration
- Moved all third-party libraries (SDL, ImGui, Asar, etc.) from `src/lib/` and `third_party/` to a new `ext/` directory for better organization and clarity in dependency management.
- Updated CMake configuration to reflect the new paths, ensuring all targets and includes point to the `ext/` directory.
- Enhanced CMake presets to support new build options for AI and gRPC features, improving modularity and build flexibility.
- Added new feature flags for agent UI and remote automation, allowing for more granular control over build configurations.
- Updated documentation to reflect changes in the project structure and build options, ensuring clarity for contributors and users.
2025-11-16 18:27:37 -05:00
scawful
27131ba449 feat: enable gRPC in CI builds and update Abseil dependencies
- Updated CI presets for Linux, macOS, and Windows to enable gRPC, improving build performance with caching.
- Adjusted Abseil inclusion logic to only include standalone Abseil when gRPC is disabled, ensuring compatibility and reducing unnecessary dependencies.
- Enhanced the list of exported Abseil targets from gRPC's bundled version for better utility access.

This change aims to streamline CI processes while maintaining the necessary dependencies for successful builds.
2025-11-05 11:19:43 -05:00
Claude
445de5b7cf fix: implement platform-specific CI presets to resolve build failures
This commit implements the fixes identified in CI_BUILD_FAILURE_ANALYSIS.md
to ensure stable, fast CI builds across all platforms.

Changes:
1. Add platform-specific CI presets (ci-linux, ci-macos, ci-windows)
   - Disable gRPC to avoid 30-40 min build times and MSVC errors
   - Use minimal build configuration for faster, reliable CI
   - Expected build time reduction: ~40 min -> 5-10 min

2. Update CI workflow to use platform-specific presets
   - Build job now uses ci-linux, ci-macos, ci-windows
   - Test job now uses platform-specific presets
   - Ensures consistent behavior across all platforms

3. Fix gRPC version for Windows MSVC compatibility
   - Downgrade from v1.75.1 to v1.67.1
   - v1.75.1 has UPB compilation errors on Windows MSVC
   - v1.67.1 is tested and stable on all platforms

4. Update test presets to use 'minimal' configuration
   - Ensures test presets work on all platforms
   - Consistent with new CI approach

Benefits:
- Eliminates Windows MSVC gRPC compilation errors
- Prevents Linux CI timeout issues from long gRPC builds
- Reduces CI build time by ~75% (40 min -> 5-10 min)
- Maintains build stability for releases
- No symbol linkage conflicts (verified)

Technical Notes:
- Test executables use gtest_main (no main() conflicts)
- Main app (yaze), emulator (yaze_emu), and tests are separate executables
- Shared libraries (yaze_core, yaze_gfx, etc.) properly isolated
- gRPC disabled in CI but still available for local dev builds
2025-11-03 22:15:50 +00:00
scawful
25a0fb6d3a chore: add Windows build presets and configurations to CMake
- Introduced multiple new CMake presets for Windows, including base presets for Ninja and Visual Studio generators, as well as specific configurations for Debug, Release, and Development builds.
- Added ARM64 support and various build options for AI development and z3ed CLI.
- Enhanced the build system's flexibility by allowing users to select from a range of configurations tailored for different development needs.

Benefits:
- Streamlines the build process for Windows environments, improving usability for developers.
- Provides comprehensive support for various build types and architectures, enhancing the overall development experience.
2025-11-01 11:07:02 -04:00
scawful
d07c0abae8 chore: enhance clangd and CI configurations for improved development experience
- Updated `.clangd` configuration to include additional include paths and feature flags tailored for ROM hacking workflows, optimizing IntelliSense support.
- Introduced `.pre-commit-config.yaml` for managing code quality checks and formatting, ensuring consistent code style across the project.
- Added `cmake-format.yaml` for CMake formatting configuration, promoting adherence to style guidelines.
- Enhanced CI workflows to include new actions for testing and building, improving overall reliability and efficiency in the development process.

Benefits:
- Streamlines development setup and improves code quality through automated checks.
- Facilitates better collaboration by ensuring consistent coding standards and configurations.
2025-10-31 20:19:22 -04:00
scawful
4d60899ba4 chore: add Linux build presets and CI configurations
- Introduced new CMake presets for Linux release and AI builds, enhancing cross-platform support.
- Updated CI workflows to include Linux build configurations, ensuring consistent build processes across platforms.
- Added a new release packaging script to streamline artifact creation for different operating systems.

Benefits:
- Improves build flexibility and reliability for Linux users.
- Simplifies the release process by automating artifact packaging and checksum generation.
2025-10-21 14:34:01 -04:00
scawful
5acda67016 chore(cmake): update vcpkg configuration and toolchain for Windows
- Modified CMake presets to include static triplet for vcpkg in Windows configurations, enhancing build consistency.
- Updated vcpkg baseline and commit ID across configuration files to ensure compatibility with the latest package versions.
- Enhanced CI workflows to utilize the new vcpkg toolchain file, improving the setup process for Windows builds.

Benefits:
- Ensures the project leverages the latest features and fixes from vcpkg, enhancing overall stability.
- Streamlines the Windows build process by consolidating vcpkg configurations, reducing potential discrepancies during builds.
2025-10-15 22:42:56 -04:00
scawful
d45f7819e1 refactor(app): reorganize application structure and update includes
- Moved core components such as `Controller` and `Window` from `src/app/core/` to `src/app/` and `src/app/platform/`, respectively, to improve modularity and clarity.
- Updated include paths across the codebase to reflect the new locations of these components.
- Introduced a new foundational core library in `src/core/` for project management and ROM patching logic, enhancing the separation of concerns.
- Adjusted CMake configurations to ensure proper compilation of the new core library and updated dependencies in various modules.

Benefits:
- Streamlines the application structure, making it easier to navigate and maintain.
- Enhances code organization by clearly delineating core functionalities from application-specific logic.
- Improves overall architecture by promoting a clearer separation of concerns between different components.
2025-10-15 20:10:04 -04:00
scawful
a026207a2d refactor(build): update CMake configurations and toolchain for macOS
- Modified CMake settings to ensure consistent use of the Homebrew LLVM/Clang installation on macOS.
- Added a new toolchain file to specify the correct compiler and header search paths, resolving potential conflicts.
- Updated CMake presets to enable the EMU build and set appropriate compiler flags.

Benefits:
- Enhances build reliability and compatibility on macOS by utilizing the Homebrew LLVM toolchain.
- Streamlines the build process with improved configuration management.
2025-10-14 01:06:35 -04:00
scawful
bc09ee05c8 feat(docs): add comprehensive AI agent architecture and debugging guides
- Introduced a new document detailing the architecture of the z3ed AI agent system, covering features like learned knowledge, TODO management, and advanced routing.
- Added a debugging guide for the AI agent, outlining the gRPC-based debugging service, available tools, and practical debugging workflows.
- Updated existing documentation to reflect recent improvements in the emulator's audio system and overall debugging capabilities.

Benefits:
- Provides clear guidance for developers on the AI agent's architecture and debugging processes, enhancing usability and understanding of the system.
- Facilitates faster onboarding and better collaboration by offering structured documentation and real-world examples.
2025-10-12 08:45:23 -04:00
scawful
277201416c feat: Enhance CMake presets and add new function schemas for ROM manipulation
- 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.
2025-10-05 01:00:32 -04:00
scawful
92a3ddded2 refactor: Update CMake presets and improve MusicEditor initialization
- 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.
2025-10-05 00:35:47 -04:00
scawful
39edadb7b6 feat: Update CMake presets for Unix compatibility
- Added a new hidden preset for Unix/macOS/Linux builds using Makefiles.
- Updated existing presets to inherit from the new Unix preset, ensuring consistent configuration across platforms.
- Revised inheritance for macOS and Linux debug and release builds to include Unix settings, enhancing cross-platform compatibility.
2025-10-04 22:55:25 -04:00
scawful
7be949b30f feat: Implement gRPC ROM service for remote manipulation
- Added `RomServiceImpl` class to facilitate remote ROM operations, including reading/writing ROM data, managing versions, and submitting proposals.
- Integrated gRPC support for real-time collaboration and remote access to ROM functionalities.
- Updated `README.md` to document the new gRPC ROM service and its capabilities.
- Enhanced CMake configuration to include new source files for the gRPC implementation and related services.
2025-10-04 22:51:13 -04:00
scawful
a3c756272d feat: Introduce warning suppression option and update CMake presets
- Added YAZE_SUPPRESS_WARNINGS option to suppress compiler warnings for cleaner build output.
- Updated CMakeLists.txt to apply warning suppression based on the new option.
- Reorganized CMakePresets.json to simplify preset names and enhance clarity, including new presets for quiet and verbose builds.
- Created documentation for the new CMake preset system, detailing usage and features.
2025-10-04 21:53:51 -04:00
scawful
588db01df6 feat: Improve CMake configuration and build environment verification
- Enabled JSON support by default in CMake to resolve Windows build issues.
- Added checks for the existence of the JSON library and its target, providing clear error messages if missing.
- Updated README with instructions for building with AI features.
- Enhanced the build environment verification script for better feedback on setup issues and added checks for agent folder structure.
- Introduced new CMake presets for AI-enabled builds and collaboration support.
2025-10-04 19:43:05 -04:00
scawful
867fa820ba feat: Add job configuration to build presets and link yaze_test_support in test CMakeLists 2025-10-04 16:30:12 -04:00
scawful
83f6f50326 feat: Update CMake presets and agent configuration for improved build options and interactive chat session experience 2025-10-04 01:04:24 -04:00
scawful
9bfc95de37 feat: Refactor RoomObject decoding logic to prioritize Type3 detection and update related unit tests 2025-10-04 00:15:21 -04:00
scawful
c2dd6498e2 feat: Implement object encoding/decoding for dungeon objects and add unit tests 2025-10-04 00:03:40 -04:00
scawful
5123b0ee5f feat: Update CMake presets and test discovery to enhance test categorization and labeling 2025-10-03 22:08:07 -04:00
scawful
2c45453dd0 Implement recording functionality in agent test commands
- Added RecordingState structure to manage recording session details.
- Implemented SaveRecordingState and LoadRecordingState functions to handle recording state persistence.
- Enhanced HandleTestRecordCommand to support starting and stopping recording sessions with various options.
- Integrated gRPC calls for starting and stopping recordings in GuiAutomationClient.
- Updated ProposalRegistry to include sandbox directory and ROM path in ProposalMetadata.
- Implemented JSON parsing for Tile16Proposal to handle proposal creation from JSON input.
- Updated CMakeLists.txt to ensure proper linking of emulator targets.
2025-10-03 21:16:08 -04:00
scawful
db227c9de5 feat: Update CMake configuration for Abseil and gRPC, enhance modular build support, and add CLI flag handling 2025-10-03 20:24:58 -04:00
scawful
c9f439207e feat: Enhance modular build support and update Abseil integration for macOS 2025-10-03 19:10:59 -04:00
scawful
21ef67c1ca Update CMake presets for agent testing and enhance roadmap documentation 2025-10-03 15:44:11 -04:00
scawful
a1baa747e1 Enhance CMake and vcpkg integration for Windows ARM64 builds
- Updated `CMakeLists.txt` to improve vcpkg integration by adding checks for the existence of the toolchain file and providing warnings if it is not found.
- Introduced new CMake presets for Windows ARM64 configurations (debug, release, and development) in `CMakePresets.json`, ensuring proper setup for ARM64 architecture.
- Modified `setup-vcpkg-windows.ps1` to auto-detect ARM64 architecture, enhancing the setup script's usability for different environments.
2025-09-28 19:32:37 -04:00
scawful
d2f724f57d Add Windows Development preset to CMake configuration
- Introduced a new CMake preset for Windows development, enabling vcpkg integration and testing features.
- Configured the preset to inherit from the debug configuration, ensuring consistency in build settings.
- Set up cache variables for vcpkg and testing options, enhancing the development workflow on Windows.
2025-09-27 20:17:07 -04:00
scawful
5e45c94e59 Integrate vcpkg support for Windows builds and enhance documentation
- Added vcpkg integration in CMake for Windows, enabling automatic dependency management.
- Updated CMakePresets.json to include presets for debug and release builds with vcpkg.
- Created setup scripts for easy vcpkg installation on Windows.
- Enhanced documentation to guide users on vcpkg setup and usage with YAZE.
- Improved logging in Overworld class to track expanded tile flags during map assembly.
2025-09-27 20:05:00 -04:00
scawful
53787872b2 Add .clangd configuration and update CMakePresets.json for compile commands
- Introduced a new .clangd file to specify compile flags, inlay hints, hover options, and diagnostics settings for improved code analysis and development experience.
- Updated CMakePresets.json to enable export of compile commands, enhancing integration with IDEs and tools that rely on compilation information.
2025-09-26 13:14:04 -04:00
scawful
22c960eaf3 Add code quality checks and formatting configuration
- Introduced a .clang-format file to enforce Google C++ style guidelines across the codebase.
- Updated CMakeLists.txt to include custom targets for formatting and format-checking using clang-format.
- Added a quality_check.sh script to automate code quality checks, including formatting and static analysis with cppcheck.
- Enhanced CMakePresets.json with new macOS-specific configurations for ARM64 and universal binaries, improving build flexibility and support.
2025-09-26 12:57:20 -04:00
scawful
e930789f4b Enhance CMake configuration and CI/CD workflows for improved testing
- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
2025-09-25 09:39:33 -04:00
scawful
6bdcfe95ec Update CMake configuration and CI/CD workflows
- Upgraded CMake minimum version requirement to 3.16 and updated project version to 0.3.0.
- Introduced new CMake presets for build configurations, including default, debug, and release options.
- Added CI/CD workflows for continuous integration and release management, enhancing automated testing and deployment processes.
- Integrated Asar assembler support with new wrapper classes and CLI commands for patching ROMs.
- Implemented comprehensive tests for Asar integration, ensuring robust functionality and error handling.
- Enhanced packaging configuration for cross-platform support, including Windows, macOS, and Linux.
- Updated documentation and added test assets for improved clarity and usability.
2025-09-25 08:59:59 -04:00