refactor(naming): A1 — ente→arje, vista→revista, pluma→fana

Rename batch de la Fase A del PLAN_MACRO:
- 25 crates ente-* → arje-* (protocol/init/runtime/compat). El linaje
  arje (init Linux) queda con prefijo coherente.
- vista → revista (revista-core + revista-web).
- pluma → fana (fana-md + fana-md-reader-web). fana absorbe el linaje
  markdown de pluma; será el writer DAG editor (prioridad alta).

Cambios:
- git mv de 29 crate dirs + 2 SDDs
- package/lib/bin names + path refs + imports .rs reescritos
- workspace Cargo.toml + comentarios de sección
- SDDs de init/runtime/compat/protocol actualizados a arje-
- SDD de revista + SDD de fana (reescrito: writer DAG editor)
- docs/STATUS.md, ROADMAP.md, PLAN_MACRO.md, arje-boot.md,
  arje-replace-systemd.md actualizados
- docs/changelog/akasha.md → chasqui.md

scripts/rename-fase-a.py idempotente (--dry-run soportado).
cargo check --workspace verde.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 00:10:14 +00:00
parent 3fc6dcfa72
commit b83d40a833
159 changed files with 2384 additions and 1111 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ flows por tipo, y wire types de red. No corre lógica de dominio.
| `brahman-admin` | lib | Socket admin separado: snapshots de sesiones+matches |
| `brahman-sidecar` | lib | `spawn(card)` para que apps se presenten al Init |
| `brahman-net` | lib | Malla libp2p opcional (TCP+noise+yamux+kad) |
| `ente-card` | lib | Alias legacy — re-export de `brahman-card` |
| `arje-card` | lib | Alias legacy — re-export de `brahman-card` |
## Struct `Card` (anatomía completa)
@@ -1,5 +1,5 @@
[package]
name = "ente-card"
name = "arje-card"
version = "0.0.1"
edition.workspace = true
license.workspace = true
+3 -3
View File
@@ -1187,7 +1187,7 @@ mod tests {
#[test]
fn wirecard_postcard_with_priority_contexts() {
// Repro del bug que rompía akasha-nous-mock: ContextBias con
// Repro del bug que rompía chasqui-nous-mock: ContextBias con
// skip_serializing_if causaba que postcard leyera bytes
// equivocados. Sin esos atributos, el roundtrip es estable.
let src = r#"{
@@ -1266,8 +1266,8 @@ mod tests {
#[test]
fn new_assigns_real_ulid_and_label() {
let c = Card::new("akasha.engine");
assert_eq!(c.label, "akasha.engine");
let c = Card::new("chasqui.engine");
assert_eq!(c.label, "chasqui.engine");
assert_ne!(c.id, Ulid::nil(), "Card::new no debe dejar id en nil");
}
+1 -1
View File
@@ -14,7 +14,7 @@ serde_json = { workspace = true }
thiserror = { workspace = true }
ulid = { workspace = true }
brahman-card = { path = "../brahman-card" }
akasha-card = { path = "../../modules/akasha/card" }
chasqui-card = { path = "../../modules/chasqui/card" }
nahual-meta-schema = { path = "../../modules/nahual/libs/meta-schema" }
nickel-lang = "2.0.0"
+2 -2
View File
@@ -12,7 +12,7 @@
//! ```text
//! ┌─────────────┐ ┌──────────────┐ ┌─────────────┐
//! │ Ente JSON │ │ Monad JSON │ │ UiModule │ … futuro
//! │ (brahman- │ │ (akasha- │ │ (nakui-ui- │
//! │ (brahman- │ │ (chasqui- │ │ (nakui-ui- │
//! │ card) │ │ card) │ │ schema) │
//! └─────┬───────┘ └──────┬───────┘ └──────┬──────┘
//! │ │ │
@@ -48,7 +48,7 @@ use serde_json::Value;
use thiserror::Error;
pub use brahman_card::Card as EnteCard;
pub use akasha_card::MonadManifest;
pub use chasqui_card::MonadManifest;
pub use nahual_meta_schema::Module as UiModuleSpec;
/// Estructura canónica única que consumen los downstream del sistema
+2 -2
View File
@@ -69,10 +69,10 @@ impl CardReader for EnteJsonReader {
}
// ============================================================================
// Monad (akasha-card)
// Monad (chasqui-card)
// ============================================================================
/// Reader para el shape JSON de [`akasha_card::MonadManifest`].
/// Reader para el shape JSON de [`chasqui_card::MonadManifest`].
///
/// Heurística: tiene `members` (BTreeSet<FileId>) Y `cardinality`
/// (u32). La combinación es exclusiva del MonadManifest.
@@ -21,7 +21,7 @@
//! vía la conexión directa establecida en step 2 y obtiene el record
//! del store local de A.
//! - El test usa flow `monad-list:json` por familiaridad (es el flow
//! real que `akasha daemon` declara). Sirve también como prueba de
//! real que `chasqui daemon` declara). Sirve también como prueba de
//! que el sistema completo (daemon + DHT) funcionaría con cero
//! cambios en la Card.
@@ -3,7 +3,7 @@
//! sockets ni reimplementar el patrón a mano.
//!
//! Es la generalización de `discover_producer_socket` del CLI
//! `akasha attract --remote`: declarás el `TypeRef` que querés
//! `chasqui attract --remote`: declarás el `TypeRef` que querés
//! consumir y el broker te empuja un `MatchEvent::Available` con el
//! `producer_service_socket` del primer proveedor matched.
//!
@@ -263,8 +263,8 @@ mod tests {
#[test]
fn builder_sets_input_flow_with_primitive_type() {
let c = build_consumer_card("akasha.cli", "embed-result", "json");
assert_eq!(c.label, "akasha.cli");
let c = build_consumer_card("chasqui.cli", "embed-result", "json");
assert_eq!(c.label, "chasqui.cli");
assert_eq!(c.kind, CardKind::Ente);
assert!(matches!(c.lifecycle, Lifecycle::Oneshot));
assert!(matches!(c.supervision, Supervision::OneShot));
+2 -2
View File
@@ -95,7 +95,7 @@ pub fn spawn_with_handle(config: SidecarConfig) -> std::io::Result<JoinHandle<()
/// Pool consolidado: un único thread con un runtime tokio
/// `current_thread` que hostea N tasks de sidecar simultáneas.
///
/// Para módulos con muchas sesiones (p. ej. `akasha daemon` publicando
/// Para módulos con muchas sesiones (p. ej. `chasqui daemon` publicando
/// 50+ Mónadas), evita el costo de tener un thread+runtime por cada
/// sesión.
///
@@ -111,7 +111,7 @@ pub struct SidecarPool {
handle: tokio::runtime::Handle,
/// Sesiones vivas indexadas por `Card.id`. Permite que un nuevo
/// `spawn` con el mismo id aborte la sesión previa — útil cuando
/// un módulo (p. ej. `akasha daemon`) re-publica una Mónada cuya
/// un módulo (p. ej. `chasqui daemon`) re-publica una Mónada cuya
/// composición cambió.
sessions: Arc<Mutex<HashMap<Ulid, AbortHandle>>>,
_thread: JoinHandle<()>,