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.
%{"archived" => false, "blocks" => ["concept", "note", "attachment", "plan", "task_list", "release", "asset"], "id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "idea_type_id" => "14d5498e-3e9f-569c-94bc-572f1ba61f0a", "inserted_at" => "2026-09-02T13:50:46Z", "name" => "PLP - Practical Learning Platform", "pitch" => "Give people focused bite-sized learning when they need it. Learning that solves real problems.", "type" => "idea.update", "updated_at" => "2026-09-03T20:07:55Z"}
670
element.update
%{"data" => %{"done" => true, "task_type_id" => "818ca193-82c3-5d3d-8976-2b0b8359226f"}, "element_type" => "task_list", "id" => "fc667274-02a6-46ad-8f9c-a8039005be33", "idea_id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "inserted_at" => "2026-09-03T18:05:58Z", "position" => 0, "title" => "The microphone piece broke after a few rounds", "type" => "element.update", "updated_at" => "2026-09-03T20:07:55Z"}
669
idea.update
%{"archived" => false, "blocks" => ["concept", "note", "attachment", "plan", "task_list", "release", "asset"], "id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "idea_type_id" => "14d5498e-3e9f-569c-94bc-572f1ba61f0a", "inserted_at" => "2026-09-02T13:50:46Z", "name" => "PLP - Practical Learning Platform", "pitch" => "Give people focused bite-sized learning when they need it. Learning that solves real problems.", "type" => "idea.update", "updated_at" => "2026-09-03T19:44:56Z"}
668
element.create
%{"data" => %{"done" => false, "task_type_id" => "83776309-6f31-52b1-89ab-fce3a072eef9"}, "element_type" => "task_list", "id" => "40778995-aaa9-4a57-ad69-b2aa8671fad9", "idea_id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "inserted_at" => "2026-09-03T19:44:56Z", "position" => 0, "title" => "Add \"report an issue\" button which provides a modal with a free text field and then emails that, along with the session ID and user logged in email, to predefined support contacts", "type" => "element.create", "updated_at" => "2026-09-03T19:44:56Z"}
667
idea.update
%{"archived" => false, "blocks" => ["concept", "note", "attachment", "plan", "task_list", "release", "asset"], "id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "idea_type_id" => "14d5498e-3e9f-569c-94bc-572f1ba61f0a", "inserted_at" => "2026-09-02T13:50:46Z", "name" => "PLP - Practical Learning Platform", "pitch" => "Give people focused bite-sized learning when they need it. Learning that solves real problems.", "type" => "idea.update", "updated_at" => "2026-09-03T19:18:51Z"}