--- name: project-name-leveva-p10 description: "the idiomatic-Rust end state of this ircd port ships under the project name \"leveva\"; rename happens at Phase 10" metadata: node_type: memory type: project originSessionId: bae0dadf-c2f9-4e1f-8521-413d1df9ceb7 --- The all-Rust product of this ircd port is to be named **leveva**. Per PLAN.md, **Phase 10 (P10) is where the project starts being called `leveva`** — the P10 row was renamed to "Rename to `leveva` + typed identifier string types" and its scope now includes renaming the workspace crates/binaries/docs from the `ircd*` mechanical-port names to `leveva`. **Why:** user's chosen name for the final all-Rust product; not derivable from the code (the workspace crates are `ircd-rs`/`ircd-common`/`iauth-rs`/etc. through P0–P9). User explicitly set the rename to begin at Phase 10 (2026-06-06), superseding an earlier note that put it at P8. **How to apply:** the faithful-port + cleanup phases (P0–P9) keep the `ircd-*` names; at P10, rename to `leveva` (Cargo.toml package names, binary artifact, README/docs). See [[rust-migration-plan]]. **Update 2026-06-07 — leveva crate STARTED EARLY (string layer):** the user pulled P10's typed-string foundation forward (right after P7 completed, before P8/P9). A new greenfield `leveva/` workspace member now exists — std-only, NO `ircd-sys`/`ircd-common` dep, no `cref_` oracle, ordinary Rust unit/doc tests. Modules: `casemap` (textbook RFC 1459 fold — `A-Z↔a-z` PLUS Scandinavian `[↔{ \↔| ]↔} ~↔^`; deliberately differs from this daemon's ASCII-only `tolowertab` in `common/match.c`), `string` (`IrcStr`/`IrcString` casemapping `Eq/Ord/Hash`, `Borrow`, NUL/CR/LF reject, `IrcStringBuilder`), `ident` (validating newtypes via `ident_newtype!` macro: `Nick`/`ChanName`/`Sid`/`Uid`/`Cid`/`ServerName`/`UserName`/`HostName`, grounded in struct_def.h lengths + char_atribs NVALID + do_nick_name + s_id.c), `message` (`Message`/`MessageBuilder` → 512-safe CRLF wire). The crate/binary **rename of the `ircd-*` crates is still deferred** to the real P10 slot. Progress: `docs/progress-log/p10.md`; plan: `docs/superpowers/plans/2026-06-07-leveva-rfc1459-string.md`. **Update 2026-06-08 — leveva is now THE destination, not a late rename (see [[leveva-pivot-p9-retired]]).** The roadmap pivoted: rather than transforming the mechanical port in place (old P9–P12), `leveva` is a full greenfield rewrite that grows to feature parity differentially-tested against `ircd-common` (the oracle), which is then deleted. **P9 retired.** So the "rename happens at P10" framing is superseded — there is no rename of `ircd-*`; `leveva` is its own crate from the start and `ircd-common`/`ircd-rs` get *deleted* at P12, not renamed.