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-03T18:06:48Z"}
630
element.create
%{"data" => %{"done" => false, "task_type_id" => "a57ca2a4-d396-587e-b1bb-1615090d015a"}, "element_type" => "task_list", "id" => "70ff5f69-dece-448a-8103-852140a00f38", "idea_id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "inserted_at" => "2026-09-03T18:06:47Z", "position" => 0, "title" => "Responses take a long time sometimes", "type" => "element.create", "updated_at" => "2026-09-03T18:06:47Z"}
629
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-03T18:06:34Z"}
628
element.update
%{"data" => %{"done" => false, "task_type_id" => "a57ca2a4-d396-587e-b1bb-1615090d015a"}, "element_type" => "task_list", "id" => "6dfbdbc7-6356-4777-bcaa-6996f021d08c", "idea_id" => "bd5ed897-00fb-4f64-afd0-94f7e8205489", "inserted_at" => "2026-09-03T18:04:13Z", "position" => 0, "title" => "Don't show the audio player for the AI talking or the volume meter for the user's microphone", "type" => "element.update", "updated_at" => "2026-09-03T18:06:34Z"}
627
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-03T18:04:46Z"}
626
element.create
%{"data" => %{"done" => false, "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:04:45Z", "position" => 0, "title" => "The microphone piece broke after a few rounds", "type" => "element.create", "updated_at" => "2026-09-03T18:04:45Z"}
625
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-03T18:04:28Z"}