"8046": [
{
"filename": "1330 (2025-05-28)RAW.csv",
"labID": "1330",
"date": "2025-05-28",
"run": 1,
"study": "int",
"file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-1/sub-8046_ses-1_accel.csv"
},
{
"filename": "1330 (2025-08-01)RAW.csv",
"labID": "1330",
"date": "2025-08-01",
"run": 2,
"study": "int",
"file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-2/sub-8046_ses-2_accel.csv"
},
{
"filename": "1330 (2025-12-09)RAW.csv",
"labID": "1330",
"date": "2025-12-09",
"run": 3,
"study": "int",
"file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-3/sub-8046_ses-3_accel.csv"
},
{
"filename": "1330 (2026-01-29)RAW.csv",
"labID": "1330",
"date": "2026-01-29",
"run": 4,
"study": "int",
"file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-4/sub-8046_ses-4_accel.csv"
}
]
Fixes for current logic issues in manifest // cli update
Current bugs // logic issues
res/data.json, but the on-diskses-*files do not match that ordering.Session Reordering Fixes
Representative subject:
80468046is a useful example because the manifest already shows a plausible, chronologically ordered wear-period sequence, but the files currently stored under the canonicalses-*directories appear not to match those manifest rows.res/data.json:1330 (2025-05-28)RAW.csv1330 (2025-08-01)RAW.csv1330 (2025-12-09)RAW.csv1330 (2026-01-29)RAW.csvses-*directory;Concrete manifest example for
8046What should be verified for this example
file_path.filename.ses-*directory contains more than one_accel.csv, because that would make the rename path ambiguous and can explain nondeterministic reorder results.Why this example matters
8046is confirmed to have correct manifest rows but incorrect on-disk content, then the required fix is not just better run assignment logic.Problem Specification (with code references)
Observed failure mode
file_pathvalues can be correct while on-disk session files are stale/misplaced, producing duplicate or otherwise incorrect content across differentses-*directories for the same subject.Primary execution path where divergence can happen
Save.save()processes subjects transactionally and then persists the manifest: act/utils/save.py#L50, act/utils/save.py#L65.ses-*directory contents as trustworthy during rename.Likely root cause in current logic (no guard yet)
_apply_two_phase_renames()moves whole session directories and then renames whichever_accel.csvit finds in the destination directory to the expected canonical filename, without verifying that the file's contents match the manifest record identity for that run: act/utils/save.py#L882, act/utils/save.py#L927.ses-*directory already contains the wrong CSV content, the rename transaction preserves and re-labels that wrong content into a new canonical location._copy_subject_record()is still a secondary contributor. It skips when destination already exists and does not verify that destination content corresponds to the incoming record identity (filename/date/labID): act/utils/save.py#L633, act/utils/save.py#L644.Required recovery / reorder pass
res/data.json.subject_id,run,study,file_path,filename,date,labID);ses-*is correct.Logic gap during reindex shifts
_apply_two_phase_renames()renames session directories via temp hops and then renames the first discovered_accel.csvin the destination directory: act/utils/save.py#L882, act/utils/save.py#L906.os.listdir(new_dir)and stops at the first matching_accel.csv, with no deterministic ordering and no identity check: act/utils/save.py#L928, act/utils/save.py#L929.What is currently tested vs missing
_accel.csvselection during rename; and rerun idempotency for on-disk content correctness (not just run index assignment).Current problem boundary to fix next
ses-*.