Skip to content

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.