gioser

tawasuyu/brahman

Rust 582TOML 222Markdown 83JSON 198635 Sutichaykuna

chore(nakui): alinear nakui-core con [workspace.package] y deps compartidas

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.

79d42aba2825390bcce1ee77120b7829edbbeb2a · ruwaq Sergio · (5 killa ñawpaq) · tayta 4c9e4c396 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

4 qillqakuna · +48 −11

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 <sha>`.
 
 ## 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() {