Auto-browse peers that expose remote shared-file inventories
Workflow status is tracked in GitHub: https://github.com/emulebb/emulebb/issues/24. This local document is retained as an engineering spec/evidence record.
Summary¶
Add an Advanced opt-in feature that automatically detects compatible peers that expose their shared-file inventory, browses those inventories using the existing browse/share protocol, and hands successful results to the cache layer.
FEAT-078 owns the longer-term local database cache for auto-browse results. This item owns the safe discovery, scheduling, and live browse behavior.
Intended Mainline Shape¶
- new Tweaks preference:
AutoBrowseRemoteShares- background scheduler:
- periodic sweep of known clients
- bounded concurrency
- cooldown-based retry policy
- cache handoff:
- explicit result object for successful remote inventory snapshots
- cooldown and expiry hints for the storage layer
- no direct dependency on the final cache backend
- UI:
- new
Cached Clientstab - cached-only inspection path
- manual live refresh path
- live validation lane:
- isolated real-network auto-browse harness in
emulebb-build-tests
Constraints¶
- reuse the existing remote shared-files browse protocol
- do not introduce automatic download or queue side effects
- keep manual browse working independently of auto-browse cooldowns
- keep this feature opt-in and default-off
Acceptance Criteria¶
- [ ] compatible remote clients can be auto-browsed in the background
- [ ] successful browse results are handed to a bounded cache interface
- [ ] cached inventories can be inspected through the new UI tab
- [ ] manual browse can supersede and refresh cached data
- [ ] isolated live-network automation can validate at least one real auto-browse success
Notes¶
- This item is intentionally parked on a dedicated feature branch and is not
merged into
main. - Current supporting live scenario defaults include:
- P2P bind through
BindInterface=hide.me - P2P
UPnP=1 - autoconnect through preferences only
- fallback transfer bootstrap hash
28EAB1A0AB1B9416AAF534E27A234941 - rejection of
.exedownload candidates during fallback bootstrap
eMuleAI Implementation References¶
Review source: eMuleAI commit
8e34bdec2b7e4fe9e4307df9d80f691804be99ed.
- client-history data structures:
ClientList.h - persisted history and known-client map handling:
ClientList.cpp - client-list UI columns and known-client display:
ClientListCtrl.cpp - remote shared-files browse entry points and history guards:
BaseClient.cpp - preference UI for remote shared files and client history:
PPgMod.cpp,PPgMod.cpp,PPgMod.cpp
eMuleBB Direction¶
The eMuleAI history model is useful, but eMuleBB should split it into smaller steps: manual remote-browse stability, opt-in auto-browse scheduling, bounded client-history notes, then local cache persistence under FEAT-078. None of these steps should auto-queue downloads or expose cached inventories through REST until privacy and retention rules are documented.