From 3b21a5276eec27d10895c5860095604a19ec42c8 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Thu, 19 Feb 2026 14:22:17 +0000 Subject: [PATCH] fix(state): marker and file cleanup overwriting it's own filtering --- rewind/state.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/rewind/state.py b/rewind/state.py index ab12875..567b08a 100644 --- a/rewind/state.py +++ b/rewind/state.py @@ -71,28 +71,31 @@ def remove_marker_from_state(marker_name: str) -> None: def cleanup_state(max_age_seconds: float) -> None: state = load_state() - files = state.get("files", []) - markers = state.get("markers", []) now = datetime.datetime.now().timestamp() - # Remove files that do not exist - state["files"] = [ - file for file in files - if os.path.exists(file["path"]) + files = state.get("files", []) + markers = state.get("markers", []) + + # First filter by existence + files = [ + f for f in files + if os.path.exists(f["path"]) ] - # Remove files and markers beyond max age - state["files"] = [ - file for file in files - if now - file["timestamp"] <= max_age_seconds + # Then filter by age + files = [ + f for f in files + if now - f["timestamp"] <= max_age_seconds ] - - state["markers"] = [ - marker for marker in markers - if now - marker["timestamp"] <= max_age_seconds + markers = [ + m for m in markers + if now - m["timestamp"] <= max_age_seconds ] + state["files"] = files + state["markers"] = markers + write_state(state) def create_state_file_if_needed() -> None: