WIP: Phase 9.78b - Unified registry integration (import issues pending)

Progress made:
- Add unified registry call to objects.rs execute_new() method
- Initialize unified registry in runner.rs on startup
- Create global registry management in runtime/unified_registry.rs
- Add test case for unified registry validation
- Implement fallback to legacy match statement for compatibility

Current issue:
- Module import errors in runtime/unified_registry.rs preventing build
- Need to resolve box_factory module path visibility from runtime context

Next steps:
- Fix import paths for box_factory modules
- Test unified registry functionality
- Remove legacy match statement after validation

Technical details:
- execute_new() now tries unified registry first, falls back to legacy
- Registry initialized with BuiltinBoxFactory and PluginBoxFactory
- Maintains backward compatibility during transition

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-08-19 16:48:45 +09:00
parent 18d26ed130
commit fbb94aea17
4 changed files with 82 additions and 7 deletions

View File

@ -5,7 +5,7 @@
* Integrates all Box creation sources (builtin, user-defined, plugin)
*/
use crate::box_factory::{UnifiedBoxRegistry, builtin::BuiltinBoxFactory, plugin::PluginBoxFactory};
use super::super::box_factory::{UnifiedBoxRegistry, builtin::BuiltinBoxFactory, plugin::PluginBoxFactory};
use std::sync::{Arc, Mutex, OnceLock};
/// Global registry instance
@ -35,7 +35,7 @@ pub fn get_global_unified_registry() -> Arc<Mutex<UnifiedBoxRegistry>> {
}
/// Register a user-defined Box factory (called by interpreter)
pub fn register_user_defined_factory(factory: Arc<dyn crate::box_factory::BoxFactory>) {
pub fn register_user_defined_factory(factory: Arc<dyn super::super::box_factory::BoxFactory>) {
let registry = get_global_unified_registry();
let mut registry_lock = registry.lock().unwrap();