Rename the project to Echo (was fedserv)

Rebrand the daemon and workspace: the binary is now `echo`, every crate
is `echo-*` (`echo-api` and the module crates), Rust imports use
`echo_*`, the gRPC proto is `proto/echo.proto` with package `echo.v1`,
and the log filter, gossip peer-name default, and on-disk store default
(`echo.db.jsonl`) follow. Docs updated throughout. No behaviour change;
crate directories and the config schema are untouched.
This commit is contained in:
Jean Chevronnet 2026-07-14 15:24:41 +00:00
parent e7037572e5
commit 993f5b2eea
No known key found for this signature in database
159 changed files with 660 additions and 660 deletions

View file

@ -1,8 +1,8 @@
[package]
name = "fedserv-operserv"
name = "echo-operserv"
version = "0.0.1"
edition = "2021"
description = "OperServ: network operator tools, starting with AKILL network bans."
[dependencies]
fedserv-api = { path = "../../api" }
echo-api = { path = "../../api" }

View file

@ -1,4 +1,4 @@
use fedserv_api::{NetView, Priv, Sender, ServiceCtx, Store};
use echo_api::{NetView, Priv, Sender, ServiceCtx, Store};
use std::collections::HashSet;
// CHANKILL <#channel> [reason]: AKILL every user in a channel by host, clearing

View file

@ -1,4 +1,4 @@
use fedserv_api::{Priv, Sender, ServiceCtx, Store};
use echo_api::{Priv, Sender, ServiceCtx, Store};
// DEFCON [1-5]: read or set the network defence level. 5 is normal; each lower
// level adds a restriction — 4 freezes channel registrations, 3 freezes all

View file

@ -1,4 +1,4 @@
use fedserv_api::{Priv, Sender, ServiceCtx};
use echo_api::{Priv, Sender, ServiceCtx};
// GLOBAL <message>: send an announcement to every user on the network. Admin-
// only — it reaches everyone, so it's the heaviest voice services have.

View file

@ -1,4 +1,4 @@
use fedserv_api::{parse_duration, Priv, Sender, ServiceCtx, Store};
use echo_api::{parse_duration, Priv, Sender, ServiceCtx, Store};
use std::time::{SystemTime, UNIX_EPOCH};
// IGNORE ADD [+expiry] <mask> [reason] | DEL <mask> | LIST: services silently

View file

@ -1,4 +1,4 @@
use fedserv_api::{Priv, Sender, ServiceCtx, Store};
use echo_api::{Priv, Sender, ServiceCtx, Store};
// INFO <target> | INFO ADD <target> <note> | INFO DEL <target>: attach a staff
// note to an account or channel (a `#name` is a channel, else an account). The

View file

@ -1,4 +1,4 @@
use fedserv_api::{Priv, Sender, ServiceCtx, Store};
use echo_api::{Priv, Sender, ServiceCtx, Store};
// JUPE <server.name> [reason] | JUPE DEL <server.name> | JUPE LIST: hold a
// server name with a fake server so a rogue one can't link (or lift it). Admin-

View file

@ -1,4 +1,4 @@
use fedserv_api::{NetView, Priv, Sender, ServiceCtx};
use echo_api::{NetView, Priv, Sender, ServiceCtx};
// KICK <#channel> <nick> [reason]: remove a user from a channel, sourced from
// OperServ so it's clearly a staff action. Admin-only.

View file

@ -1,4 +1,4 @@
use fedserv_api::{NetView, Priv, Sender, ServiceCtx};
use echo_api::{NetView, Priv, Sender, ServiceCtx};
// KILL <nick> [reason]: disconnect a user from the network. Admin-only.
pub fn handle(me: &str, from: &Sender, args: &[&str], ctx: &mut ServiceCtx, net: &dyn NetView) {

View file

@ -3,7 +3,7 @@
//! announcement to every user, and KILL to disconnect one. `lib.rs` dispatches;
//! each command family is its own file.
use fedserv_api::{NetView, Sender, Service, ServiceCtx, Store};
use echo_api::{NetView, Sender, Service, ServiceCtx, Store};
#[path = "xline.rs"]
mod xline;

View file

@ -1,4 +1,4 @@
use fedserv_api::{human_time, NetView, Priv, Sender, ServiceCtx};
use echo_api::{human_time, NetView, Priv, Sender, ServiceCtx};
// LOGSEARCH [pattern]: search the recent action log — every kick, kill, ban,
// registration/drop, akill, suspension, vhost, note, and so on. A bare id (as

View file

@ -1,4 +1,4 @@
use fedserv_api::{chanmode_takes_param, NetView, Priv, Sender, ServiceCtx, STATUS_MODES};
use echo_api::{chanmode_takes_param, NetView, Priv, Sender, ServiceCtx, STATUS_MODES};
// MODE <#channel> <modes> [params]: set channel modes as a services override
// (forced, so it applies regardless of the current TS). Admin-only. Status-mode

View file

@ -1,4 +1,4 @@
use fedserv_api::{parse_duration, Priv, Sender, ServiceCtx, Store};
use echo_api::{parse_duration, Priv, Sender, ServiceCtx, Store};
use std::time::{SystemTime, UNIX_EPOCH};
// OPER ADD <account> <priv[,priv…]> [+duration] | OPER DEL <account> | OPER LIST:

View file

@ -1,4 +1,4 @@
use fedserv_api::{NetView, Priv, Sender, ServiceCtx, Store};
use echo_api::{NetView, Priv, Sender, ServiceCtx, Store};
// SESSION LIST <min> | SESSION VIEW <ip>: inspect live per-IP session counts.
// EXCEPTION ADD <ip-mask> <limit> [reason] | DEL <ip-mask> | LIST: manage the

View file

@ -1,4 +1,4 @@
use fedserv_api::{Sender, ServiceCtx, Store};
use echo_api::{Sender, ServiceCtx, Store};
// STATS: an at-a-glance summary of the enforcement state OperServ holds — how
// many network bans of each kind and how many services ignores are live.

View file

@ -1,4 +1,4 @@
use fedserv_api::{NetView, Priv, Sender, ServiceCtx};
use echo_api::{NetView, Priv, Sender, ServiceCtx};
// SVSNICK <nick> <newnick>: force a user to change nick. Admin-only.
pub fn nick(me: &str, from: &Sender, args: &[&str], ctx: &mut ServiceCtx, net: &dyn NetView) {

View file

@ -1,4 +1,4 @@
use fedserv_api::{parse_duration, Sender, ServiceCtx, Store};
use echo_api::{parse_duration, Sender, ServiceCtx, Store};
use std::time::{SystemTime, UNIX_EPOCH};
// A network-ban command family (AKILL, SQLINE, …): the ircd X-line `kind`, the