FEAT-123 - Shared files one-level auto-updater¶
Workflow status is tracked in GitHub: https://github.com/emulebb/emulebb/issues/148. This local document is retained as an engineering spec/evidence record.
Summary¶
Restore the previous-version convenience where new files placed directly inside already-shared directories are detected automatically. For RC3 this is a bounded, non-recursive polling feature: it does not promote normal shared directories into monitored roots and does not change recursive sharing behavior.
Behavior¶
- Poll every 5 minutes after normal startup completes.
- Check the main Incoming directory, category Incoming directories, and
directories listed in
shareddir.dat. - Compare directory metadata first; only directories that appear changed are enumerated.
- Enumerate only immediate files in changed directories, using the existing shared-file intake path for ignore rules, known-file reuse, duplicate handling, in-flight hash suppression, async hashing, and UI count refresh.
- Process at most 512 directory metadata checks and 8 changed-directory scans on one timer tick.
- Skip the polling pass while shared-file hashing is already active.
- Leave
shareddir.monitored.datandshareddir.monitor-owned.datuntouched. - Hidden opt-out:
AutoReloadSharedFiles=0inpreferences.ini.
Acceptance Criteria¶
- [ ] New files directly under Incoming are picked up without pressing Reload.
- [ ] New files directly under a configured shared directory are picked up without pressing Reload.
- [ ] Files in unshared child directories are not picked up.
- [ ] The feature does not write monitored shared-root state.
- [ ] The poller is bounded to the configured per-tick directory limits.
- [ ] Existing shared-file hash queue, ignore, duplicate, and known-file reuse behavior remains unchanged.
- [ ] Debug, Release, and diagnostics Release x64 app builds pass before commit.
Notes¶
This is separate from FEAT-038. FEAT-038 remains the explicit recursive monitored shared-root feature; FEAT-123 is only one-level auto-update for existing shared directories.