Split the project into a Cargo workspace with separate oboromi-core and oboromi-gui crates. Moved core emulator logic into oboromi-core, and GUI/frontend code into oboromi-gui. Updated dependencies and paths accordingly, removed unused test files, and adjusted module imports to reflect the new structure.
Expanded OS matrix in CI and release workflows to include macos-14 and macos-13, improved artifact handling and release automation, and optimized caching and dependency checks. Security workflow now caches cargo binaries and conditionally installs cargo-outdated. Minor cleanups and improved messaging in PR review workflow.
Moved test-related code from src/gui/tests.rs to src/tests/run.rs and created a new src/tests module. Updated imports and module structure to reflect this change. Removed old cpu_tests.rs and added manual_tests.rs to run all emulator feature tests using the new test runner.
Introduces a new `gui` module with initial implementation and tests using egui, updates dependencies in Cargo.toml and Cargo.lock to include egui and related crates, and ui is renamed from ui to gui. Updates .gitignore to exclude oboromi.log. Refactors main.rs and lib.rs to integrate the new GUI, and removes the obsolete ui module.
Introduces a new MMU module with TLB and page table support, and integrates it into the Memory abstraction. All memory accesses now go through the MMU, enabling address translation and basic virtual memory functionality. Includes identity mapping setup and a test for MMU functionality in main.
Introduces a 'trace' feature flag in Cargo.toml and updates the CI workflow to test with and without this feature. When enabled, the CPU logs each executed instruction with a human-readable disassembly. Main and CPU code are refactored to support conditional tracing, and test output is clarified with improved comments.