Scans all CRDT log rows for this user. Rows whose operation payload matches an earlier
row (same normalized JSON) are removed; the lowest data_version for each payload is kept. This cannot be undone. Removing tail rows can lower server
latest_version
after the next client sync.
%{"id" => "c22e6bd0-1fa8-43d2-9373-922dd27baea9", "inserted_at" => "2026-04-27T16:09:53Z", "priority" => 2.0, "project_id" => "4fde0448-2ad8-4bba-93a7-a5d648016a76", "status" => "not_started", "title" => "It isn't possible to remove the scheduled date from the edit UI", "type" => "todo.create", "updated_at" => "2026-04-27T16:09:53Z", "user_id" => "156b0342-9379-4992-b761-1bb6eff14ab6"}
5401
todo.update
%{"description" => "It continues the link and there is no way to break it other than a newline or editing it after the fact", "id" => "d9e96de6-857d-49d6-8cb7-773e3699f938", "priority" => 2.0, "project_id" => "4fde0448-2ad8-4bba-93a7-a5d648016a76", "status" => "not_started", "title" => "Typing a space after linked text doesn't end the link", "type" => "todo.update", "updated_at" => "2026-04-27T16:09:09Z"}
%{"description" => "It continues the link and there is no way to break it other than a newline or editing it after the fact", "id" => "d9e96de6-857d-49d6-8cb7-773e3699f938", "inserted_at" => "2026-04-27T16:09:01Z", "priority" => 2.0, "project_id" => "4fde0448-2ad8-4bba-93a7-a5d648016a76", "status" => "not_started", "title" => "Typing a space after linked text doesn't end the link", "type" => "todo.create", "updated_at" => "2026-04-27T16:09:01Z", "user_id" => "156b0342-9379-4992-b761-1bb6eff14ab6"}
%{"description" => "It's supposed to keep the current formatting", "id" => "22506ee5-0223-43bc-a5b9-577fda9be5a6", "inserted_at" => "2026-04-26T22:02:46Z", "priority" => 2.0, "project_id" => "4fde0448-2ad8-4bba-93a7-a5d648016a76", "status" => "not_started", "title" => "On Android, when making text in a description a link, it deletes the other formatting", "type" => "todo.create", "updated_at" => "2026-04-26T22:02:46Z", "user_id" => "156b0342-9379-4992-b761-1bb6eff14ab6"}
5394
todo.update
%{"description" => "***Wtf***", "id" => "2392c9db-278d-41ba-a189-b25eee699d71", "priority" => 3.0, "project_id" => "2600ea1e-323f-4da0-ac82-718e100bebcd", "status" => "completed", "title" => "Don't cancel editing a todo that has been changed without a confirmation", "type" => "todo.update", "updated_at" => "2026-04-26T22:01:01Z"}
5393
todo.update
%{"description" => "***Wtf***", "id" => "2392c9db-278d-41ba-a189-b25eee699d71", "priority" => 3.0, "project_id" => "2600ea1e-323f-4da0-ac82-718e100bebcd", "status" => "not_started", "title" => "Don't cancel editing a todo that has been changed without a confirmation", "type" => "todo.update", "updated_at" => "2026-04-26T22:00:24Z"}
%{"id" => "28d0e712-d672-497a-af66-fea9dfcf0c56", "priority" => 4.0, "project_id" => "4fde0448-2ad8-4bba-93a7-a5d648016a76", "status" => "completed", "title" => "It doesn't let me move a completed todo (this was never a requirement)", "type" => "todo.update", "updated_at" => "2026-04-26T21:49:51Z"}