Workflow status is tracked in GitHub: https://github.com/emulebb/emulebb/issues/154. This local document is retained as an engineering spec/evidence record.
FEAT-115 - Add per-volume storage policy hints and diagnostics¶
Summary¶
Record and expose conservative storage hints for the volumes eMuleBB uses for config, temp, incoming, and shared files. The goal is to make I/O policy decisions and diagnostics volume-aware without adding risky automatic behavior that depends on imperfect drive detection.
Intended Shape¶
- Build a small storage-profile snapshot for each active volume:
- role: config, temp, incoming, shared, or mixed
- filesystem and sparse-file support where available
- rotational, SSD/NVMe, removable, network, or unknown class where Windows reports it reliably
- free-space floor and current free-space state
- whether the same volume hosts multiple eMuleBB roles
- Use these hints as conservative inputs for future I/O policy such as hash/verify throttling, share-scan throttling, sparse-file guidance, and preallocation guidance.
- Prefer diagnostics and operator visibility before any automatic behavior change.
- Keep unknown or conflicting Windows storage signals conservative.
Scope Constraints¶
- Do not change defaults solely because Windows reports a drive type.
- Do not require administrator privileges or vendor-specific storage APIs.
- Do not treat drive-type detection as security or correctness authority.
- Do not create noisy UI prompts for every storage profile.
- Do not persist machine-specific absolute paths in product docs or release evidence.
Acceptance Criteria¶
- [ ] eMuleBB can produce a bounded diagnostic snapshot of active storage volumes and their roles.
- [ ] Unknown or conflicting drive signals are represented explicitly as unknown, not guessed.
- [ ] The snapshot can identify mixed-role volumes, such as temp and incoming sharing the same drive.
- [ ] Sparse-file and full-allocation guidance can cite volume facts without changing neutral defaults.
- [ ] Future I/O schedulers can consume the snapshot without duplicating volume probing code.
- [ ] Diagnostics avoid leaking unnecessary user-private path detail.
Validation¶
- focused tests for volume-role grouping from configured paths
- source checks for no mandatory admin-only API dependency
- manual diagnostics review on SSD, HDD, removable, and unknown storage where available
- x64 Debug and Release app builds before implementation commit