Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
0

Configure Feed

Select the types of activity you want to include in your feed.

docs(memory): record P11 slice 116 (/metrics endpoint closes the last §4 gap)

+19 -3
+6 -3
docs/claude-memory/leveva-next-step-s2s-completeness.md
··· 383 383 (found+fixed a real CR-framing bug), 114 = VERSION, **115 = iauth registration-seam** (native 384 384 leveva — `iauth_seam_proptest`, the `resolve_auth`→`finalize_registration` deferred-finalize gate 385 385 fuzzed over random verdict × arrival order; headline = byte-identical output regardless of order). 386 - The §4 "concrete fuzzing gaps" list is now **effectively exhausted** — only the deferred 387 - prometheus-output golden (user said skip) + the optional nightly cargo-fuzz tier (needs nightly; 388 - marked P12) remain. P11 is at its §7 definition-of-done; next is the **deferred infra items** 386 + **Slice 116 (2026-06-11) then closed the last non-nightly §4 item — the prometheus-output 387 + golden** — by turning it into a real feature: a `metrics { port; bind? }` config block stands up 388 + an axum `GET /metrics` endpoint serving `Counters::encode_text()` (see [[leveva-prometheus-metrics]]), 389 + pinned by `golden_metrics.rs` (boot + raw-HTTP scrape) + `metrics_endpoint_proptest.rs` (3 props). 390 + The §4 "concrete fuzzing gaps" list is now **fully closed** — only the optional nightly cargo-fuzz 391 + tier (needs nightly; marked P12) remains. P11 is at its §7 definition-of-done; next is the **deferred infra items** 389 392 (per-class connection caps, listener live-rebind, the auto-connect dial loop, default-channel-modes 390 393 rehash — each needs live-accounting/accept-task infra leveva lacks) or **P12 proper** (delete 391 394 `ircd-common`/`ircd-rs`). **Ask the user.**
+13
docs/claude-memory/leveva-prometheus-metrics.md
··· 37 37 (empty body still echoes the letter in the `219`). Dep: `prometheus = "0.13"`, no `process` 38 38 feature (no libc/procfs). Related: [[leveva-next-step-s2s-completeness]], 39 39 [[leveva-command-folder]]. 40 + 41 + **Update (slice 116, 2026-06-11):** `encode_text()` now has a real consumer. A new 42 + top-level `metrics { port <u16>; bind? }` config block (`config/model.rs` 43 + `MetricsConfig`, `parse::metrics`) stands up an axum `GET /metrics` HTTP server 44 + (`leveva/src/metrics_server.rs`, spawned from `main.rs` when the block is set) that 45 + returns `ctx.counters.encode_text()` as `text/plain; version=0.0.4`. Reuses the 46 + WebSocket-transport axum dep. Unauthenticated/plaintext by design — `warnings()` flags an 47 + all-interfaces bind. Pinned by `golden_metrics.rs` (boot + raw-HTTP scrape + insta snap, 48 + canonicalizer sorts samples within each `# HELP` block — prometheus emits vec samples in 49 + hashmap order) and `metrics_endpoint_proptest.rs` (3 properties). **Key finding:** the 50 + exposition exposes the **raw** `IntGauge` (can read negative on stray-deregister 51 + underflow); only `snapshot()` clamps at zero for LUSERS. NICK/USER aren't counted 52 + (pre-registration `STATS m` divergence).