IvoryOS major refactoring summary
This document summarizes the major architectural changes and refactorings implemented.
Dissolving the monolithic utils/ directory
The ivoryos/utils/ directory has been broken apart into logical, domain-specific packages to enforce a cleaner separation of concerns:
ivoryos/core/: system-level abstractions such asmodule_loader.pyandreturn_handlers.py.ivoryos/forms/: UI form generation and WTForms logic such asdynamic_forms.py.ivoryos/models/: database models such asbase.py,execution.py,script.py,user.py, andworkflow.py.ivoryos/parsers/: data serialization, JSON parsing, and type conversions.ivoryos/runtime/: execution orchestration, control flows, and queue management such asscript_runner.pyandtask_runner.py.ivoryos/services/: standalone backend services such asllm_agent.py,draft_service.py, andclient_proxy.py.
Real-time Socket.IO synchronization
Legacy HTTP polling through GET /status and GET /queue has been replaced with an event-driven Socket.IO architecture.
Real-time events such as
busy_status,queue_status, andpause_statusare managed centrally inivoryos/socket_handlers.py.Frontend synchronization is handled through
window.platformStateinsocket_handler.js, reducing server overhead and UI latency.
Codebase cleanup
Community examples were removed from the core package area because they were primarily publication-oriented and not intended for core reproducibility.
Integration and unit tests in
tests/were updated to reflect the package-based import structure.