mirror of
https://github.com/rommapp/romm.git
synced 2026-06-28 06:46:00 +00:00
The server datetime-tags every slot upload's filename (archival spec), so a slot accrues many rows and the stored file_name never equals the client's untagged canonical name. Keying negotiate's server-save map on file_name meant every client save missed -> perpetual "upload", and every tagged server row went unmatched -> perpetual "download", with save rows growing unbounded. Pair on (rom_id, slot), collapsing each slot to its newest row, so compare_save_state actually runs and content hashes decide the action. Tests: real upload->negotiate round-trip (lets _apply_datetime_tag run, client reports the untagged name) and a 3-device convergence test; both fail against the old file_name keying.
32 KiB
32 KiB