refactor(yahweh): Fase 1 — nakui-ui-schema → yahweh-meta-schema
Primer paso del refactor yahweh. El schema de UI declarativa no tiene acoplamiento real con Nakui (sólo dep en serde/thiserror) — movemos a yahweh para que cualquier app metadata-driven lo use sin pasar por nakui. Mecánico: - git mv crates/modules/nakui/ui-schema → crates/modules/ui_engine/libs/meta-schema. - Crate name: nakui-ui-schema → yahweh-meta-schema. - Workspace members[] actualizado (sección yahweh, no nakui). - Consumers actualizados: brahman-cards (Cargo.toml + lib.rs + readers.rs), nakui-ui (Cargo.toml + main.rs). - Self-test (example_modules.rs): import + path rebase (5 niveles arriba ahora). Documental: - Doc del crate ahora dice "metainterfaz (yahweh meta-schema)" + "backend-agnostic" en filosofía. - Module.nakui_module_dir documentado como "path opaco al backend"; se conserva el nombre por compat con módulos ya escritos + serde alias "backend_module_dir" para futuro rename suave. Tests: 13 yahweh-meta-schema + 26 brahman-cards + 48 nakui-ui verdes. Workspace build verde. NO hace Fase 1: mover widgets a yahweh (Fase 2), trait MetaBackend (Fase 3), renombrar nakui_module_dir. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,7 @@ thiserror = { workspace = true }
|
||||
ulid = { workspace = true }
|
||||
brahman-card = { path = "../brahman-card" }
|
||||
nouser-card = { path = "../../modules/nouser/card" }
|
||||
nakui-ui-schema = { path = "../../modules/nakui/ui-schema" }
|
||||
yahweh-meta-schema = { path = "../../modules/ui_engine/libs/meta-schema" }
|
||||
nickel-lang = "2.0.0"
|
||||
|
||||
[dev-dependencies]
|
||||
|
||||
@@ -48,8 +48,8 @@ use serde_json::Value;
|
||||
use thiserror::Error;
|
||||
|
||||
pub use brahman_card::Card as EnteCard;
|
||||
pub use nakui_ui_schema::Module as UiModuleSpec;
|
||||
pub use nouser_card::MonadManifest;
|
||||
pub use yahweh_meta_schema::Module as UiModuleSpec;
|
||||
|
||||
/// Estructura canónica única que consumen los downstream del sistema
|
||||
/// (UI runtime, storage, DHT, wire). Cada formato input se proyecta
|
||||
@@ -59,7 +59,7 @@ pub use nouser_card::MonadManifest;
|
||||
/// (identidad legible + extensiones forward-compat); el body preserva
|
||||
/// el typing rico de cada dominio sin colapsarlos.
|
||||
// PartialEq se omite porque algunos body variants vienen de crates
|
||||
// que no lo implementan (MonadManifest, nakui_ui_schema::Module).
|
||||
// que no lo implementan (MonadManifest, yahweh_meta_schema::Module).
|
||||
// Si downstream necesita igualdad, comparar via JSON round-trip o
|
||||
// agregar PartialEq en los crates origen.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
|
||||
@@ -114,11 +114,11 @@ impl CardReader for MonadJsonReader {
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// UiModule (nakui-ui-schema)
|
||||
// UiModule (yahweh-meta-schema)
|
||||
// ============================================================================
|
||||
|
||||
/// Reader para el shape JSON de los `module.json` de la UI Nakui
|
||||
/// ([`nakui_ui_schema::Module`]).
|
||||
/// Reader para el shape JSON de los `module.json` de la metainterfaz
|
||||
/// ([`yahweh_meta_schema::Module`]).
|
||||
///
|
||||
/// Heurística: tiene `entities` Y `views` Y `menu`. Es el shape más
|
||||
/// específico del repo, así que va primero en el orden default — si
|
||||
|
||||
Reference in New Issue
Block a user