emulebb-rust Active Backlog — Issue Index¶
This directory is the active local backlog/spec layer for the emulebb-rust
headless client. It follows the eMuleBB backlog convention
(BACKLOG-PROCESS,
BACKLOG-ITEM-TEMPLATE):
each item is docs/active/items/<ID>.md with the same front matter and section
vocabulary.
Most active product items are GitHub-tracked (workflow: github): issues
live in emulebb/emulebb-rust and are aggregated on the org eMuleBB Suite
board (https://github.com/orgs/emulebb/projects/3, Product = emulebb-rust,
Phase field). GitHub owns workflow state (status, priority, placement); these
Markdown files own the durable engineering spec. Local-only backlog items record
internal evidence gates, CI debt, or closure decisions that do not need public
workflow state. Parked ideas stay out of the tracker entirely (see the roadmap's
Active vs Parked ledger).
Current Snapshot¶
Source of truth: code in EMULEBB_WORKSPACE_ROOT\repos\emulebb-rust
(main branch); active docs in
EMULEBB_WORKSPACE_ROOT\repos\emulebb-tooling\docs\products\emulebb-rust.
Scope note: emulebb-rust is out of RC2 ship scope (the emulebb-mfc RC train).
Since 2026-07-05 the repo carries its own release gate: the
rust-v0.1.0-beta.1 first-usable-release program tracked by
RUST-FEAT-033 (milestone: release-0.1.0-beta.1
groups its items).
Protocol policy: IPv4-only, stock eMule wire-compatible for implemented
eD2K/Kad behaviour. SX1 is the only pre-approved permanent protocol drop; the
current omission registry is under re-audit. Machine-readable omissions remain
in EMULEBB_WORKSPACE_ROOT\repos\emulebb-rust\policy\rust-client-omissions.toml.
Design sketches: architecture.
Backlog process runbook:
BACKLOG-PROCESS
ID Taxonomy¶
Item IDs carry a product prefix so they never collide across the suite repos:
emulebb-rust uses RUST-<CLASS>-<NNN> with classes BUG, FEAT, REF, CI
(e.g. RUST-FEAT-002). Other products use QBBB-, GOED2K-, AMUT-; the frozen
emulebb-mfc keeps its legacy unprefixed IDs. IDs are allocated per class and never
reused. Scan both docs/active/items and docs/history/items before
allocating the next number.
First Beta — Rust Console UI¶
The first forward milestone is a Rust Console UI beta. emulebb-rust and TrackMuleBB move in parallel, but release waits for both core proof and UI proof. The beta targets Rust only and uses polling against the Rust-forward OpenAPI contract in this tooling docs tree.
Core gates remain first-class: stock-wire parity, fail-closed VPN proof, responsive REST, upload/download/search/share evidence, and soak evidence. The beta may ship with a signed-off non-critical parity backlog, but P0 safety and stock-wire-critical findings block the tag. Indexer/Torznab/Arr work stays active forward scope but is not the first UI beta gate unless separately promoted.
Phase 0 — "perfectly functional" gate¶
emulebb-rust is the strategic forward eD2K/Kad core. "Perfectly functional" =
client parity plus the indexer role, per
emulebb-tooling/docs/active/SUITE-JOINT-ROADMAP.md. The FEAT items below are the
Phase 0 scope. Cooperative-DHT / BEP-46 publishing and similar ideas are parked
(see the roadmap's Active vs Parked ledger) and are intentionally not backlog
items.
Core Parity Closure¶
Core parity closure is narrower than full Phase 0. It covers core client behavior, Rust REST contract conformance, deterministic local cross-client interop, and an optional public hide.me smoke witness. It does not close the Phase 0 indexer, Arr/Torznab, Docker, SSE, or automated tunnel-down leak-test work. The closure gate and test-rationalization plan are tracked by RUST-CI-002.
Active Backlog¶
Only in-progress / open items live in items/. Items move to
../history/items/ when they reach DONE, so these tables
stay active-only; see Closed Items for the archive.
Features (FEAT)¶
| ID | Priority | Status | Title |
|---|---|---|---|
| RUST-FEAT-001 | Major | IN_PROGRESS | eD2K — Implement client UDP source reask and queue-slot persistence |
| RUST-FEAT-002 | Major | OPEN | Indexer — autonomous Kad/eD2K snooping index with Torznab surface |
| RUST-FEAT-004 | Major | OPEN | Arr integration — Torznab indexer + qBittorrent-emulating download client |
| RUST-FEAT-005 | Critical | OPEN | Automated VPN leak-test — assert no data egress off the tunnel (release-blocking) |
| RUST-FEAT-006 | Major | OPEN | Docker — publish a linuxserver-style GHCR image (suite bundle prerequisite) |
| RUST-FEAT-007 | Minor | OPEN | REST push — SSE stream for live transfer updates (+ transfers.sse capability) |
| RUST-FEAT-025 | Major | IN_PROGRESS | Anti-abuse — redo upload_duplicate_done_block_rejected (+ queued sibling) with conformant ledger semantics |
| RUST-FEAT-033 | Critical | OPEN | Release — first usable release rust-v0.1.0-beta.1 (Rust tag, TrackMuleBB console proof, soak-gated) |
Refactors / Evidence (REF)¶
| ID | Priority | Status | Title |
|---|---|---|---|
| RUST-REF-004 | Critical | OPEN | Re-audit every non-SX1 Rust divergence under stock eMule parity policy |
| RUST-REF-005 | Major | IN_PROGRESS | Decompose oversized Rust modules by responsibility |
| RUST-REF-006 | Major | IN_PROGRESS | Consolidate Rust NAT and runtime safety internals |
Bugs (BUG)¶
| ID | Priority | Status | Title |
|---|---|---|---|
| RUST-BUG-001 | Minor | IN_PROGRESS | kad_swarm multi-node transfer tests are isolated in CI |
CI / Tooling (CI)¶
| ID | Priority | Status | Title |
|---|---|---|---|
| RUST-CI-002 | Major | OPEN | Rationalize and close the core stock-eMule parity evidence gate |
| RUST-CI-003 | Minor | OPEN | Wire the /api/v1 OpenAPI conformance/drift check into CI |
| RUST-CI-004 | Major | IN_PROGRESS | Harden Rust toolchain, feature, and supply-chain gates |
Closed Items (archive)¶
Closed items keep their full engineering record under
../history/items/. As of 2026-07-10 the archive holds the
DONE set: RUST-FEAT-003, RUST-FEAT-030, RUST-FEAT-031, RUST-FEAT-032,
RUST-FEAT-035, RUST-REF-001, RUST-REF-002,
RUST-REF-003, RUST-CI-001, and the RUST-BUG-002...RUST-BUG-099
parity wave. Browse that directory for the per-item detail; this index
intentionally does not re-list closed items.