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.
Version
Type
Inserted
Operation
96
element.update
%{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "878e5920-5b01-489b-b494-205ef3a6cd38", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T01:01:50Z", "position" => 0, "title" => "Bug: if created in rapid succession, you can create duplicate tags. Saw this on Android but it is likely a race condition on the server, so it impacts desktop too", "type" => "element.update", "updated_at" => "2026-08-27T23:28:32Z"}
95
idea.update
%{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:29Z"}
94
element.update
%{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "3ebac1cc-d6f1-40ed-98dd-a84fd8f50c47", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T15:08:32Z", "position" => 23, "title" => "UX: In the task count widget (next to the \"Tasks\" header) it should show only the count of undone tasks. The \"Show done\" action should also be changed to include the count of done, like \"Show done (47)\" but with a cap of 99; if larger then 99, it should say \"Show done (99+)\"", "type" => "element.update", "updated_at" => "2026-08-27T23:28:29Z"}
%{"data" => %{"done" => false}, "element_type" => "task_list", "id" => "c92bdf89-095d-424b-a12f-cffb92e15027", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T20:36:51Z", "position" => 0, "title" => "Add real user Auth. First version should just be password but later maybe add magic link login", "type" => "element.create", "updated_at" => "2026-08-27T20:36:51Z"}
%{"body" => "{\"type\":\"doc\",\"content\":[{\"type\":\"orderedList\",\"attrs\":{\"start\":1,\"type\":null},\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Mark start/end of a clip (video segment) \"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Add metadata (tags, label, notes) \"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"View previously defined segments in sequence instead of having to watch the whole file\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Extract segments to their own videos (individually or together) \"}]}]}]},{\"type\":\"paragraph\"}]}", "data" => "{}", "element_type" => "note", "id" => "1a473a82-e776-4721-98c7-e0ab28e08871", "idea_id" => "00132d13-5888-4e37-85fe-a66bc2b930e3", "inserted_at" => "2026-08-27T17:05:38Z", "position" => 0, "title" => "Feature brainstorming", "type" => "element.create", "updated_at" => "2026-08-27T17:05:38Z"}
83
idea.create
%{"archived" => false, "category" => "App", "id" => "00132d13-5888-4e37-85fe-a66bc2b930e3", "inserted_at" => "2026-08-27T17:02:59Z", "name" => "The Best Bit", "pitch" => "Mark sections of a video and attach metadata to it (label, tags, notes) to make it easier to jump back to those clips later", "type" => "idea.create", "updated_at" => "2026-08-27T17:02:59Z"}
82
element.create
%{"body" => nil, "data" => %{}, "element_type" => "task_list", "id" => "3ebac1cc-d6f1-40ed-98dd-a84fd8f50c47", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T15:07:17Z", "position" => 23, "title" => "UX: In the task count widget (next to the \"Tasks\" header) it should show only the count of undone tasks. The \"Show done\" action should also be changed to include the count of done, like \"Show done (47)\" but with a cap of 99; if larger then 99, it should say \"Show done (99+)\"", "type" => "element.create", "updated_at" => "2026-08-27T15:07:17Z"}
81
element.update
%{"body" => nil, "data" => %{"done" => true}, "element_type" => "task_list", "id" => "302e86ac-ff52-48cb-aee5-5c9e55d3eeef", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T08:45:53Z", "position" => 0, "title" => "feature: export all not-done tasks to a simple, ordered list to make it easier to feed to an LLM", "type" => "element.update", "updated_at" => "2026-08-27T15:05:08Z"}
80
element.update
%{"body" => nil, "data" => %{"done" => false}, "element_type" => "task_list", "id" => "878e5920-5b01-489b-b494-205ef3a6cd38", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T01:01:50Z", "position" => 0, "title" => "Bug: if created in rapid succession, you can create duplicate tags. Saw this on Android but it is likely a race condition on the server, so it impacts desktop too", "type" => "element.update", "updated_at" => "2026-08-27T15:04:46Z"}
79
element.update
%{"body" => nil, "data" => %{"done" => false}, "element_type" => "task_list", "id" => "6f8572a8-6f59-4fd9-8e06-ba3fdfaa2714", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T01:02:23Z", "position" => 0, "title" => "Bug: Adding new tasks doesn't change the last edited time? Doesn't seem to. Not sure if this is only Android or if it is true on Desktop too.", "type" => "element.update", "updated_at" => "2026-08-27T15:04:00Z"}
78
element.update
%{"body" => nil, "data" => %{"done" => false}, "element_type" => "task_list", "id" => "c920f761-70c8-4038-a449-1f71789c2e7b", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T06:51:54Z", "position" => 0, "title" => "Bug: [Desktop+Android] Shouldn't be able to go \"back\" while editing something like notes or a plan without a confirmation modal", "type" => "element.update", "updated_at" => "2026-08-27T15:03:45Z"}
77
element.update
%{"body" => nil, "data" => %{"done" => false}, "element_type" => "task_list", "id" => "40383746-c57e-46d5-ab08-932466378f06", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T10:57:04Z", "position" => 0, "title" => "Bug: [Android] The virtual keyboard covers the bottom content on the screen (whichever screen the user is on) making it impossible to access/see some things. Also, it pushes up the content a bit, so the user also can't scroll to the top of the view (if it's tall enough to go off the screen)", "type" => "element.update", "updated_at" => "2026-08-27T15:03:31Z"}