From 79d42aba2825390bcce1ee77120b7829edbbeb2a Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 9 May 2026 02:49:41 +0000 Subject: [PATCH] chore(nakui): alinear nakui-core con [workspace.package] y deps compartidas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cleanup de drift de convenciones: nakui-core era el unico crate del monorepo que manteia version, edition y thiserror hardcoded, mientras el resto heredaba del workspace y usaba thiserror v2. Eso significaba que un bump global de version o edition se olvidaba sistematicamente de nakui. Cambios: - [package]: version, edition, rust-version, license, authors, publish -> todos *.workspace = true. Agregado description (convencion). - Deps compartidas migradas a { workspace = true }: serde, serde_json, thiserror (v1->v2), tokio, ulid, sha2. - uuid migrado a { workspace = true, features = ["serde"] } — la feature serde no esta en el workspace dep porque nakui es el unico user; queda local opt-in en lugar de inflar el dep comun. - Deps especificas de nakui (sin comparticion posible): rhai, petgraph, surrealdb permanecen inline con version local. Verificacion: cargo build -p nakui-core verde tras el bump thiserror v1->v2 — los 14+ enums de error de nakui no requirieron ajustes (derive backwards-compat para patrones simples). cargo test -p nakui-core --lib: 27/27 verdes. Bonus en este commit: discovery.rs movio el import Ulid a #[cfg(test)] porque el refactor a Card::new lo dejo unused en module-scope. --- CHANGELOG.md | 25 ++++++++++++++++ Cargo.lock | 2 +- crates/modules/nakui/core/Cargo.toml | 29 +++++++++++++------ .../shared/brahman-sidecar/src/discovery.rs | 3 +- 4 files changed, 48 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 975da0e..601d8ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,31 @@ ratio/diff ver `git show `. ## 2026-05-09 +### chore(nakui): alinear `nakui-core` con `[workspace.package]` y deps compartidas +Cleanup de drift de convenciones: `nakui-core` era el único crate del +monorepo que mantenía `version = "0.1.0"` / `edition = "2021"` / +`thiserror = "1"` hardcoded, mientras el resto heredaba del workspace +y usaba `thiserror = "2"`. Eso significaba que un bump global de versión +o de edition se olvidaba sistemáticamente de nakui. + +Cambios: +- `[package]`: `version`, `edition`, `rust-version`, `license`, `authors`, + `publish` → todos `*.workspace = true`. Agregado `description` (cumple + convención del resto de crates). +- Deps compartidas migradas a `{ workspace = true }`: serde, serde_json, + thiserror (v1→v2), tokio, ulid, sha2. +- `uuid` migrado a `{ workspace = true, features = ["serde"] }` — la + feature `serde` no está en el workspace dep porque nakui es el único + user; queda local opt-in en lugar de inflar el dep común. +- Deps específicas de nakui (sin compartición posible): rhai, petgraph, + surrealdb permanecen inline con versión local. + +Verificación: `cargo build -p nakui-core` verde tras el bump de +`thiserror` v1→v2 — el `#[derive(Error)]` de los 14+ enums de error +en nakui no requirió ajustes (la API de derive es backwards-compatible +para los patrones simples). `cargo test -p nakui-core --lib`: 27/27 +verdes, sin regresión. + ### feat(card): `Card::new(label)` — alternativa segura a `Default::default()` Cierra la trap documentada de `Card::default()` que devuelve `id = Ulid::nil()`. Usar `Card::default()` "viva" colisionaba con cualquier diff --git a/Cargo.lock b/Cargo.lock index 6fabaee..b533e61 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6102,7 +6102,7 @@ dependencies = [ "serde_json", "sha2", "surrealdb", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", "ulid", "uuid", diff --git a/crates/modules/nakui/core/Cargo.toml b/crates/modules/nakui/core/Cargo.toml index 1a566c1..06fde2e 100644 --- a/crates/modules/nakui/core/Cargo.toml +++ b/crates/modules/nakui/core/Cargo.toml @@ -1,7 +1,12 @@ [package] name = "nakui-core" -version = "0.1.0" -edition = "2021" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +authors.workspace = true +publish.workspace = true +description = "Nakui — ERP modular: graph runtime, executor de scripts Rhai, persistencia opcional SurrealDB." [features] default = [] @@ -11,20 +16,26 @@ default = [] persistent = ["surrealdb/kv-surrealkv"] [dependencies] -serde = { version = "1", features = ["derive"] } -serde_json = "1" +# Workspace-shared (versión y features alineadas con el resto del monorepo). +serde = { workspace = true } +serde_json = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true } +ulid = { workspace = true } +sha2 = { workspace = true } +# uuid del workspace ya activa "v4"; le sumamos "serde" para soporte +# de derive en structs propios de nakui. +uuid = { workspace = true, features = ["serde"] } + +# Específicas de nakui — no compartidas con otros crates del workspace, +# por lo que se mantienen inline (versión local). rhai = { version = "1.20", features = ["serde"] } -uuid = { version = "1", features = ["v4", "serde"] } -thiserror = "1" petgraph = "0.6" -sha2 = "0.10" surrealdb = { version = "2", default-features = false, features = ["kv-mem"] } -tokio = { version = "1", features = ["rt", "macros"] } # Brahman protocol — presencia ante el Init cuando `nakui run` arranca. brahman-card = { path = "../../../core/brahman-card" } brahman-sidecar = { path = "../../../shared/brahman-sidecar" } -ulid = { version = "1" } [[bin]] name = "nakui" diff --git a/crates/shared/brahman-sidecar/src/discovery.rs b/crates/shared/brahman-sidecar/src/discovery.rs index b57fbf2..2f3da92 100644 --- a/crates/shared/brahman-sidecar/src/discovery.rs +++ b/crates/shared/brahman-sidecar/src/discovery.rs @@ -25,7 +25,7 @@ use std::path::PathBuf; use std::time::{Duration, Instant}; use brahman_card::{ - ulid::Ulid, Card, CardKind, Flow, Flows, Lifecycle, Payload, Priority, Supervision, TypeRef, + Card, CardKind, Flow, Flows, Lifecycle, Payload, Priority, Supervision, TypeRef, }; use brahman_handshake::client::{Client, ClientError}; use brahman_handshake::messages::MatchEventKind; @@ -161,6 +161,7 @@ fn describe_first_input(card: &Card) -> (String, String) { #[cfg(test)] mod tests { use super::*; + use brahman_card::ulid::Ulid; #[test] fn builder_sets_input_flow_with_primitive_type() {