Files
brahman/crates/apps/shipote-daemon/Cargo.toml
sergio 3486949d24 feat(shipote): throughput + stats persistente + auth peer (fase P)
- FlowMeter (atomic u64 + rolling window 32 samples) en cada FlowChannel.
  flow_throughput() → (socket, bytes_total, bytes_per_sec). CLI:
  shipote flow throughput. Idle threshold 5s = rate 0.0.
- Snapshot v4 con stats_history persistente por workspace (cap 16).
  PersistedStats separado para evitar Instant. Restore hidrata el VecDeque
  con source="persisted".
- Auth SO_PEERCRED: daemon rechaza peers con uid distinto al propio.
  SHIPOTE_TRUST_ANYONE=1 = escape hatch documentado.

84 tests pasan (ente-incarnate 16, nouser-core 27, shipote-card 8,
shipote-core 25, shipote-discern 5, yahweh-provider-fs 3).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:58:41 +00:00

30 lines
1009 B
TOML

[package]
name = "shipote-daemon"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
publish.workspace = true
description = "Daemon de shipote: dueño de los Workspaces, expone admin socket para shipote-cli."
[[bin]]
name = "shipote-daemon"
path = "src/main.rs"
[dependencies]
shipote-card = { path = "../../modules/shipote/shipote-card" }
shipote-protocol = { path = "../../modules/shipote/shipote-protocol" }
shipote-discern = { path = "../../modules/shipote/shipote-discern" }
shipote-core = { path = "../../modules/shipote/shipote-core" }
ente-incarnate = { path = "../../shared/ente-incarnate" }
brahman-card = { path = "../../core/brahman-card" }
brahman-sidecar = { path = "../../shared/brahman-sidecar" }
anyhow = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
ulid = { workspace = true }
nix = { workspace = true }
libc = { workspace = true }