refactor(docs): standardize warning messages and update documentation formatting

- Replaced "⚠️ ISSUE" with "Warning: ISSUE" for consistency across dependency architecture documentation.
- Removed checkmarks from completed items in various documents to maintain uniformity in status representation.
- Enhanced clarity by ensuring all sections follow a consistent formatting style.

Benefits:
- Improves readability and consistency in documentation, making it easier for contributors to understand the project's status and issues.
- Aligns with the overall documentation style, fostering a more professional appearance across all documents.
This commit is contained in:
scawful
2025-10-15 17:03:57 -04:00
parent 7ee8f90574
commit 8845bf737c
20 changed files with 767 additions and 709 deletions

View File

@@ -149,8 +149,8 @@ Dependencies:
│ Depends on: yaze_gfx, yaze_util, yaze_common, absl │
└─────────────────────────────────────────────────────────────────┘
⚠️ ISSUE: Located at src/app/zelda3/ but used by both app AND cli
⚠️ ISSUE: Monolithic - any change rebuilds entire library
Warning: ISSUE: Located at src/app/zelda3/ but used by both app AND cli
Warning: ISSUE: Monolithic - any change rebuilds entire library
```
### 1.5 Zelda3 Library (Proposed - Tiered)
@@ -183,17 +183,17 @@ Dependencies:
└───────────────┘
Benefits:
Location: src/zelda3/ (proper top-level shared lib)
Granular: Change dungeon logic → only rebuilds dungeon + dependents
Clear boundaries: Separate overworld/dungeon/sprite concerns
Legacy isolation: Music tracker separated from modern code
Location: src/zelda3/ (proper top-level shared lib)
Granular: Change dungeon logic → only rebuilds dungeon + dependents
Clear boundaries: Separate overworld/dungeon/sprite concerns
Legacy isolation: Music tracker separated from modern code
```
### 1.6 Core Libraries
```
┌─────────────────────────────────────────────────────────────────┐
│ yaze_core_lib (⚠️ CIRCULAR DEPENDENCY RISK) │
│ yaze_core_lib (Warning: CIRCULAR DEPENDENCY RISK) │
│ • ROM management (rom.cc) │
│ • Window/input (window.cc) │
│ • Asar wrapper (asar_wrapper.cc) │
@@ -206,7 +206,7 @@ Benefits:
│ ImGui, asar-static, SDL2, (gRPC) │
└─────────────────────────────────────────────────────────────────┘
⚠️ CIRCULAR: yaze_gfx → depends on gfx_resource (Arena)
Warning: CIRCULAR: yaze_gfx → depends on gfx_resource (Arena)
Arena.h includes background_buffer.h (from gfx_render)
gfx_render → gfx_core → gfx_resource
BUT yaze_core_lib → yaze_gfx
@@ -241,7 +241,7 @@ Benefits:
```
┌─────────────────────────────────────────────────────────────────┐
│ yaze_test_support (⚠️ CIRCULAR WITH yaze_editor) │
│ yaze_test_support (Warning: CIRCULAR WITH yaze_editor) │
│ • TestManager (core test infrastructure) │
│ • z3ed test suite │
│ │
@@ -249,7 +249,7 @@ Benefits:
│ yaze_gfx, yaze_util, yaze_common, yaze_agent │
└────────────────────────┬────────────────────────────────────────┘
⚠️ CIRCULAR DEPENDENCY
Warning: CIRCULAR DEPENDENCY
┌─────────────────────────────────────────────────────────────────┐
│ yaze_editor │
@@ -271,10 +271,10 @@ Benefits:
└───────────────────────────────────────────┐
⚠️ CIRCULAR DEPENDENCY
Warning: CIRCULAR DEPENDENCY
┌─────────────────────────────────────────────────────────────────┐
│ yaze_agent (⚠️ LINKS TO ALMOST EVERYTHING) │
│ yaze_agent (Warning: LINKS TO ALMOST EVERYTHING) │
│ • Command handlers (resource, dungeon, overworld, graphics) │
│ • AI services (Ollama, Gemini) │
│ • GUI automation client │
@@ -288,7 +288,7 @@ Benefits:
│ yaml-cpp, ftxui, (gRPC), (nlohmann_json), (OpenSSL) │
└─────────────────────────────────────────────────────────────────┘
⚠️ ISSUE: yaze_agent is massive and pulls in the entire application stack
Warning: ISSUE: yaze_agent is massive and pulls in the entire application stack
Even simple CLI commands link against graphics, GUI, emulator, etc.
```
@@ -310,7 +310,7 @@ Benefits:
│ Links: yaze_agent, yaze_core_lib, yaze_zelda3, ftxui │
│ │
│ Transitively gets: All libraries through yaze_agent (!) │
⚠️ ISSUE: CLI tool rebuilds if GUI/graphics/emulator changes │
Warning: ISSUE: CLI tool rebuilds if GUI/graphics/emulator changes │
└────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
@@ -318,7 +318,7 @@ Benefits:
│ │
│ Links: yaze_emulator, yaze_core_lib, ImGui, SDL2 │
│ │
⚠️ Conditionally built with YAZE_BUILD_EMU=ON │
Warning: Conditionally built with YAZE_BUILD_EMU=ON │
└────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
@@ -413,14 +413,14 @@ If yaze_core_lib internals ever need gfx_resource specifics:
```
yaze_test_support dependencies:
├─→ yaze_editor (⚠️ Brings in entire app stack)
├─→ yaze_editor (Warning: Brings in entire app stack)
├─→ yaze_core_lib
├─→ yaze_gui (⚠️ Brings in all GUI widgets)
├─→ yaze_gui (Warning: Brings in all GUI widgets)
├─→ yaze_zelda3
├─→ yaze_gfx (⚠️ All 7 gfx libraries)
├─→ yaze_gfx (Warning: All 7 gfx libraries)
├─→ yaze_util
├─→ yaze_common
└─→ yaze_agent (⚠️ Brings in AI services, emulator, etc.)
└─→ yaze_agent (Warning: Brings in AI services, emulator, etc.)
Result: Test executables link against THE ENTIRE APPLICATION
```
@@ -507,8 +507,8 @@ Result: Changes to ANY of these trigger editor rebuild
- Hard to test individual editors
**Mitigation** (already done for gfx/gui):
- gfx refactored into 7 granular libs
- gui refactored into 5 granular libs
- gfx refactored into 7 granular libs
- gui refactored into 5 granular libs
- Next: Refactor zelda3 into 6 granular libs
- Next: Split editor into editor modules
@@ -621,7 +621,7 @@ All test executables (link to yaze_test_support)
TOTAL: 3 libraries rebuilt, 8+ executables relinked
TIME: 1-2 minutes
⚠️ CIRCULAR: Editor change forces test rebuild,
Warning: CIRCULAR: Editor change forces test rebuild,
Test change forces editor rebuild
```
@@ -636,8 +636,8 @@ yaze_gfx_core (depends on gfx_types)
yaze_gfx_util + yaze_gfx_render (depend on gfx_core)
STOP: Changes don't affect gfx_backend or gfx_resource
STOP: gui libraries still use old gfx INTERFACE
STOP: Changes don't affect gfx_backend or gfx_resource
STOP: gui libraries still use old gfx INTERFACE
Only rebuilt if consumers explicitly use changed APIs:
- yaze_zelda3 (if it uses modified tile functions)
@@ -645,7 +645,7 @@ Only rebuilt if consumers explicitly use changed APIs:
TOTAL: 3-5 libraries rebuilt, 1-2 executables relinked
TIME: 30-60 seconds on CI, 15-30 seconds locally
SAVINGS: 80% faster!
SAVINGS: 80% faster!
```
#### Scenario 2: Change overworld_map.cc (zelda3) - Optimized
@@ -657,8 +657,8 @@ overworld_map.cc (zelda3_overworld sub-library)
yaze_zelda3_overworld (only this sub-library rebuilt)
STOP: zelda3_dungeon, zelda3_sprite unchanged
STOP: zelda3_screen depends on overworld but may not need rebuild
STOP: zelda3_dungeon, zelda3_sprite unchanged
STOP: zelda3_screen depends on overworld but may not need rebuild
Only rebuilt if consumers use changed APIs:
- yaze_editor_overworld_module
@@ -667,7 +667,7 @@ Only rebuilt if consumers use changed APIs:
TOTAL: 2-3 libraries rebuilt, 1-2 executables relinked
TIME: 30-45 seconds on CI, 15-20 seconds locally
SAVINGS: 70% faster!
SAVINGS: 70% faster!
```
#### Scenario 3: Change test_manager.cc - Optimized
@@ -679,9 +679,9 @@ test_manager.cc (test_framework)
test_framework
STOP: test_suites may not need rebuild (depends on interface changes)
STOP: test_dashboard is separate, doesn't rebuild
STOP: yaze_editor has NO dependency on test system
STOP: test_suites may not need rebuild (depends on interface changes)
STOP: test_dashboard is separate, doesn't rebuild
STOP: yaze_editor has NO dependency on test system
Only rebuilt:
- test_framework
@@ -689,9 +689,9 @@ Only rebuilt:
TOTAL: 1 library rebuilt, 5 test executables relinked
TIME: 20-30 seconds on CI, 10-15 seconds locally
SAVINGS: 60% faster!
SAVINGS: 60% faster!
⚠️ BONUS: Release builds exclude test_dashboard entirely
Warning: BONUS: Release builds exclude test_dashboard entirely
→ Smaller binary, faster builds, cleaner architecture
```
@@ -699,11 +699,11 @@ SAVINGS: 60% faster! ✅
| Change Type | Current Time | After Refactoring | Savings |
|-------------|--------------|-------------------|---------|
| gfx_types change | 5-10 min | 30-60 sec | **80%** |
| zelda3 change | 3-5 min | 30-45 sec | **70%** |
| Test infrastructure | 1-2 min | 20-30 sec | **60%** |
| GUI widget change | 4-6 min | 45-90 sec | **65%** |
| Agent change | 2-3 min | 30-45 sec | **50%** |
| gfx_types change | 5-10 min | 30-60 sec | **80%** |
| zelda3 change | 3-5 min | 30-45 sec | **70%** |
| Test infrastructure | 1-2 min | 20-30 sec | **60%** |
| GUI widget change | 4-6 min | 45-90 sec | **65%** |
| Agent change | 2-3 min | 30-45 sec | **50%** |
**Overall Incremental Build Improvement**: **40-60% faster** across common development scenarios
@@ -746,10 +746,10 @@ SAVINGS: 60% faster! ✅
- Remove circular dependency
**Benefits**:
- No circular dependencies
- Release builds exclude test dashboard
- Test changes don't rebuild editor
- Cleaner architecture
- No circular dependencies
- Release builds exclude test dashboard
- Test changes don't rebuild editor
- Cleaner architecture
#### B. Zelda3 Library Refactoring (B6)
@@ -857,22 +857,22 @@ target_link_libraries(yaze_zelda3 INTERFACE
```
**Benefits**:
- Proper top-level shared library
- Granular rebuilds (change dungeon → only dungeon + screen rebuild)
- Clear domain boundaries
- Legacy code isolated
- Proper top-level shared library
- Granular rebuilds (change dungeon → only dungeon + screen rebuild)
- Clear domain boundaries
- Legacy code isolated
#### C. z3ed Command Abstraction (C4)
**Status**: **COMPLETED**
**Status**: **COMPLETED**
**Priority**: N/A (already done)
**Impact**: 1300+ lines eliminated, 50-60% smaller command implementations
**Achievements**:
- Command abstraction layer (`CommandContext`, `ArgumentParser`, `OutputFormatter`)
- Enhanced TUI with themes and autocomplete
- Comprehensive test coverage
- AI-friendly predictable structure
- Command abstraction layer (`CommandContext`, `ArgumentParser`, `OutputFormatter`)
- Enhanced TUI with themes and autocomplete
- Comprehensive test coverage
- AI-friendly predictable structure
**Next Steps**: None required, refactoring complete
@@ -921,10 +921,10 @@ yaze_core_lib (INTERFACE):
```
**Benefits**:
- Clear separation: foundation vs services
- Prevents cycles: gfx → core_foundation → gfx ❌ (no longer possible)
- Selective linking: CLI can use foundation only
- Better testability
- Clear separation: foundation vs services
- Prevents cycles: gfx → core_foundation → gfx ❌ (no longer possible)
- Selective linking: CLI can use foundation only
- Better testability
**Migration**:
```cmake
@@ -1013,10 +1013,10 @@ z3ed executable:
```
**Benefits**:
- 80% smaller CLI binary for basic commands
- Faster CLI development (no GUI rebuilds)
- Server deployments can use minimal agent
- Clear separation: core vs services
- 80% smaller CLI binary for basic commands
- Faster CLI development (no GUI rebuilds)
- Server deployments can use minimal agent
- Clear separation: core vs services
**Implementation**:
```cmake
@@ -1128,13 +1128,13 @@ yaze_editor (INTERFACE):
| Configuration | Purpose | Test Dashboard | Agent | gRPC | ROM Tests |
|---------------|---------|----------------|-------|------|-----------|
| **Debug** | Local development | ON | ON | ON | ❌ OFF |
| **Debug-AI** | AI feature development | ON | ON | ON | ❌ OFF |
| **Debug** | Local development | ON | ON | ON | ❌ OFF |
| **Debug-AI** | AI feature development | ON | ON | ON | ❌ OFF |
| **Release** | Production | ❌ OFF | ❌ OFF | ❌ OFF | ❌ OFF |
| **CI-Linux** | Ubuntu CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **CI-Windows** | Windows CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **CI-macOS** | macOS CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **Dev-ROM** | ROM testing | ON | ON | ON | ON |
| **CI-Linux** | Ubuntu CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **CI-Windows** | Windows CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **CI-macOS** | macOS CI/CD | ❌ OFF | ON | ON | ❌ OFF |
| **Dev-ROM** | ROM testing | ON | ON | ON | ON |
### Feature Flags
@@ -1155,16 +1155,16 @@ yaze_editor (INTERFACE):
| Library | Always Built | Conditional | Notes |
|---------|--------------|-------------|-------|
| yaze_util | | - | Foundation |
| yaze_common | | - | Foundation |
| yaze_gfx | | - | Core graphics |
| yaze_gui | | - | Core GUI |
| yaze_zelda3 | | - | Game logic |
| yaze_core_lib | | - | ROM management |
| yaze_emulator | | - | SNES emulation |
| yaze_net | | JSON/gRPC | Networking |
| yaze_editor | | APP | Main editor |
| yaze_agent | | Z3ED | CLI features |
| yaze_util | | - | Foundation |
| yaze_common | | - | Foundation |
| yaze_gfx | | - | Core graphics |
| yaze_gui | | - | Core GUI |
| yaze_zelda3 | | - | Game logic |
| yaze_core_lib | | - | ROM management |
| yaze_emulator | | - | SNES emulation |
| yaze_net | | JSON/gRPC | Networking |
| yaze_editor | | APP | Main editor |
| yaze_agent | | Z3ED | CLI features |
| yaze_test_support | ❌ | TESTS | Test infrastructure |
| yaze_test_dashboard | ❌ | TEST_DASHBOARD | GUI test dashboard |
@@ -1183,15 +1183,15 @@ yaze_editor (INTERFACE):
## 6. Migration Roadmap
### Phase 1: Foundation Fixes ( This PR)
### Phase 1: Foundation Fixes ( This PR)
**Timeline**: Immediate
**Status**: In Progress
**Tasks**:
1. Fix `BackgroundBuffer` constructor in `Arena::Arena()`
2. Add `yaze_core_lib` dependency to `yaze_emulator`
3. Document current architecture in this file
1. Fix `BackgroundBuffer` constructor in `Arena::Arena()`
2. Add `yaze_core_lib` dependency to `yaze_emulator`
3. Document current architecture in this file
**Expected Outcome**:
- Ubuntu CI passes
@@ -1214,10 +1214,10 @@ yaze_editor (INTERFACE):
7. Verify clean release builds
**Expected Outcome**:
- No circular dependencies
- 60% faster test builds
- Cleaner release binaries
- Isolated test framework
- No circular dependencies
- 60% faster test builds
- Cleaner release binaries
- Isolated test framework
### Phase 3: Zelda3 Refactoring (Week 2-3)
@@ -1245,10 +1245,10 @@ yaze_editor (INTERFACE):
- Migration guide
**Expected Outcome**:
- Proper top-level shared library
- 70% faster zelda3 incremental builds
- Clear domain boundaries
- Legacy code isolated
- Proper top-level shared library
- 70% faster zelda3 incremental builds
- Clear domain boundaries
- Legacy code isolated
### Phase 4: Core Library Split (Week 4)
@@ -1273,9 +1273,9 @@ yaze_editor (INTERFACE):
- No circular dependencies
**Expected Outcome**:
- Prevents future circular dependencies
- Cleaner separation of concerns
- Minimal CLI can use foundation only
- Prevents future circular dependencies
- Cleaner separation of concerns
- Minimal CLI can use foundation only
### Phase 5: Agent Split (Week 5)
@@ -1297,9 +1297,9 @@ yaze_editor (INTERFACE):
- Optional full services
**Expected Outcome**:
- 80% smaller CLI binary
- 50% faster CLI development
- Server-friendly minimal agent
- 80% smaller CLI binary
- 50% faster CLI development
- Server-friendly minimal agent
### Phase 6: Benchmarking & Optimization (Week 6)
@@ -1323,9 +1323,9 @@ yaze_editor (INTERFACE):
- Parallel build tuning
**Expected Outcome**:
- Data-driven optimization
- Documented build time improvements
- Tuned build system
- Data-driven optimization
- Documented build time improvements
- Tuned build system
### Phase 7: Documentation & Polish (Week 7)
@@ -1349,9 +1349,9 @@ yaze_editor (INTERFACE):
- Test parallelization
**Expected Outcome**:
- Complete documentation
- Smooth onboarding
- Optimized CI/CD
- Complete documentation
- Smooth onboarding
- Optimized CI/CD
---
@@ -1435,7 +1435,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: None (foundation)
**Dependents**: gfx_core, gfx_util
**Build Impact**: Medium (4-6 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gfx_backend
@@ -1445,7 +1445,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: SDL2
**Dependents**: gfx_resource, gfx_render
**Build Impact**: Low (2-3 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gfx_resource
@@ -1455,8 +1455,8 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gfx_backend, gfx_render (BackgroundBuffer)
**Dependents**: gfx_core
**Build Impact**: Medium (3-4 libs)
**Priority**: DONE (refactored)
**Note**: Fixed BackgroundBuffer constructor issue in this PR
**Priority**: DONE (refactored)
**Note**: Fixed BackgroundBuffer constructor issue in this PR
#### yaze_gfx_core
@@ -1466,7 +1466,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gfx_types, gfx_resource
**Dependents**: gfx_util, gfx_render, gui_canvas
**Build Impact**: High (8+ libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gfx_render
@@ -1476,7 +1476,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gfx_core, gfx_backend
**Dependents**: gfx_debug, zelda3
**Build Impact**: Medium (5-7 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gfx_util
@@ -1486,7 +1486,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gfx_core
**Dependents**: gfx_debug, editor
**Build Impact**: Medium (4-6 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gfx_debug
@@ -1496,7 +1496,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gfx_util, gfx_render
**Dependents**: editor (optional)
**Build Impact**: Low (1-2 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
### 8.3 GUI Libraries
@@ -1508,7 +1508,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: yaze_util, ImGui, nlohmann_json
**Dependents**: All other GUI libs
**Build Impact**: High (8+ libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gui_canvas
@@ -1518,7 +1518,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gui_core, yaze_gfx
**Dependents**: editor (all editors use Canvas)
**Build Impact**: Very High (10+ libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gui_widgets
@@ -1528,7 +1528,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gui_core, yaze_gfx
**Dependents**: editor
**Build Impact**: Medium (5-7 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gui_automation
@@ -1538,7 +1538,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gui_core
**Dependents**: gui_app, agent (GUI automation)
**Build Impact**: Low (2-3 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
#### yaze_gui_app
@@ -1548,14 +1548,14 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: gui_core, gui_widgets, gui_automation
**Dependents**: editor
**Build Impact**: Low (1-2 libs)
**Priority**: DONE (refactored)
**Priority**: DONE (refactored)
### 8.4 Game Logic Libraries
#### yaze_zelda3 (Current)
**Purpose**: All Zelda3 game logic
**Location**: `src/app/zelda3/` ⚠️ (wrong location)
**Location**: `src/app/zelda3/` Warning: (wrong location)
**Source Files**: 21 .cc files (monolithic)
**Dependencies**: yaze_gfx, yaze_util
**Dependents**: core_lib, editor, agent
@@ -1631,7 +1631,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Purpose**: ROM, window, asar, project, services
**Location**: `src/app/core/`
**Source Files**: 10+ .cc files (mixed concerns) ⚠️
**Source Files**: 10+ .cc files (mixed concerns) Warning:
**Dependencies**: yaze_util, yaze_gfx, yaze_zelda3, ImGui, asar, SDL2, [gRPC]
**Dependents**: editor, agent, emulator, net
**Build Impact**: Very High (10+ libs)
@@ -1668,8 +1668,8 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Dependencies**: yaze_util, yaze_common, yaze_core_lib, absl, SDL2
**Dependents**: editor, agent (emulator commands)
**Build Impact**: Medium (3-5 libs)
**Priority**: LOW (stable)
**Note**: Fixed missing core_lib dependency in this PR
**Priority**: LOW (stable)
**Note**: Fixed missing core_lib dependency in this PR
#### yaze_net
@@ -1700,7 +1700,7 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Purpose**: CLI functionality, AI services
**Location**: `src/cli/`
**Source Files**: 60+ .cc files (massive) ⚠️
**Source Files**: 60+ .cc files (massive) Warning:
**Dependencies**: common, util, gfx, gui, core_lib, zelda3, emulator, absl, yaml, ftxui, [gRPC], [JSON], [OpenSSL]
**Dependents**: editor (agent integration), z3ed
**Build Impact**: Very High (15+ libs)
@@ -1733,9 +1733,9 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
**Purpose**: Test manager + test suites
**Location**: `src/app/test/`
**Source Files**: 2 .cc files (mixed concerns) ⚠️
**Source Files**: 2 .cc files (mixed concerns) Warning:
**Dependencies**: editor, core_lib, gui, zelda3, gfx, util, common, agent
**Dependents**: editor (CIRCULAR ⚠️), all test executables
**Dependents**: editor (CIRCULAR Warning:), all test executables
**Build Impact**: Very High (10+ libs)
**Priority**: HIGH (separate per A2) 🔴
**Issues**:
@@ -1780,16 +1780,16 @@ Measured on Apple M1 Max, 32 GB RAM, macOS 14.0
### Primary Documents
- **C4-z3ed-refactoring.md**: CLI command abstraction (COMPLETED )
- **C4-z3ed-refactoring.md**: CLI command abstraction (COMPLETED )
- **B6-zelda3-library-refactoring.md**: Zelda3 move & decomposition (PROPOSED 🔴)
- **A2-test-dashboard-refactoring.md**: Test infrastructure separation (PROPOSED 🔴)
- **This Document (A1)**: Comprehensive dependency analysis (NEW 📄)
### Related Refactoring Documents
- **docs/gfx-refactor.md**: Graphics tier decomposition (COMPLETED )
- **docs/gui-refactor.md**: GUI tier decomposition (COMPLETED )
- **docs/G3-renderer-migration-complete.md**: Renderer abstraction (COMPLETED )
- **docs/gfx-refactor.md**: Graphics tier decomposition (COMPLETED )
- **docs/gui-refactor.md**: GUI tier decomposition (COMPLETED )
- **docs/G3-renderer-migration-complete.md**: Renderer abstraction (COMPLETED )
### Build System Documentation
@@ -1826,11 +1826,11 @@ This document provides a comprehensive analysis of YAZE's dependency architectur
5. **Timeline**: 6-7 weeks for complete refactoring
By following this roadmap, YAZE will achieve:
- Faster development iteration
- Cleaner architecture
- Better testability
- Easier maintenance
- Improved CI/CD performance
- Faster development iteration
- Cleaner architecture
- Better testability
- Easier maintenance
- Improved CI/CD performance
The proposed changes are backwards-compatible and can be implemented incrementally without disrupting ongoing development.