joeytrasatti-openai
ad6fc66b6d
Add persisted manual ordering for thread sections ( #36007 )
...
## What changed
- Add `thread/section/move` to atomically move a thread into, within, or out of a section. Threads can be inserted before an existing member or appended, and moves within a section preserve `sectionEnteredAt`.
- Add `section_position` sorting to `thread/list`, with ascending order as its default, and expose `sectionEnteredAt` in thread responses.
- Persist section positions and entry times in SQLite, including migration of existing section members into recency order. Section membership is no longer updated through `thread/metadata/update`.
## Testing
- Cover section moves, reordering, pagination, persistence across restarts and rollout reconciliation, concurrent updates, and rank renumbering.
GitOrigin-RevId: aec6d7ddedca5277029b5caf5c074975397e956c
2026-07-29 18:37:22 +00:00
..
2026-07-29 15:41:39 +00:00
2026-07-06 14:29:19 -07:00
2026-07-28 05:52:12 +00:00
2026-07-29 03:02:32 +00:00
2026-07-28 23:49:37 +00:00
2026-07-28 23:49:37 +00:00
2026-06-24 21:08:39 -07:00
2026-07-21 09:46:00 +00:00
2026-07-22 19:43:35 +00:00
2026-07-17 21:20:14 +00:00
2026-07-29 03:07:13 +00:00
2026-07-28 04:54:32 +00:00
2026-07-28 21:58:33 +00:00
2026-07-29 12:01:38 +00:00
2026-07-27 21:12:00 +00:00
2026-07-28 23:49:37 +00:00
2026-07-15 03:27:16 +00:00
2026-07-16 18:23:43 +00:00
2026-07-16 18:23:43 +00:00
2026-06-23 00:02:33 +00:00
2026-06-18 19:31:19 +00:00
2026-07-18 00:26:24 +00:00
2026-07-20 17:36:44 +00:00
2026-07-22 21:00:01 +00:00
2026-06-22 23:56:16 -07:00
2026-07-22 01:35:06 +00:00
2026-07-28 23:49:37 +00:00
2026-07-28 21:58:33 +00:00
2026-07-28 21:58:33 +00:00
2026-07-28 21:58:33 +00:00
2026-07-23 19:32:26 +00:00
2026-07-22 22:50:13 +00:00
2026-07-22 22:50:13 +00:00
2026-07-28 23:49:37 +00:00
2026-07-22 22:50:13 +00:00
2026-07-28 07:58:10 +00:00
2026-07-22 22:50:13 +00:00
2026-07-23 19:32:26 +00:00
2026-06-10 12:54:21 +02:00
2026-07-29 17:38:20 +00:00
2026-07-23 19:24:41 +00:00
2026-06-24 22:17:43 -07:00
2026-07-06 11:20:32 -07:00
2026-07-06 11:20:32 -07:00
2026-07-23 19:24:41 +00:00
2026-07-18 00:26:24 +00:00
2026-07-24 01:20:04 +00:00
2026-06-25 19:00:23 +00:00
2026-06-25 19:00:23 +00:00
2026-07-21 19:17:18 +00:00
2026-07-21 19:17:18 +00:00
2026-07-20 06:13:29 +00:00
2026-07-21 19:17:18 +00:00
2026-07-21 21:06:04 +00:00
2026-07-22 02:19:45 +00:00
2026-07-17 23:14:37 +00:00
2026-06-22 16:41:00 -07:00
2026-06-22 23:56:16 -07:00
2026-07-24 06:03:36 +00:00
2026-07-29 18:06:14 +00:00
2026-07-28 19:11:36 +00:00
2026-05-26 20:59:47 -07:00
2026-07-23 11:27:34 +00:00
2026-07-29 03:11:28 +00:00
2026-07-29 17:38:20 +00:00
2026-07-14 20:36:29 +00:00
2026-07-23 11:27:34 +00:00
2026-07-13 22:34:16 +00:00
2026-07-06 14:51:34 -07:00
2026-07-20 13:45:29 +00:00
2026-07-23 19:24:41 +00:00
2026-07-29 18:37:22 +00:00
2026-07-28 05:26:16 +00:00
2026-07-22 19:43:35 +00:00
2026-07-28 21:16:06 +00:00
2026-06-01 18:45:07 +00:00
2026-07-28 21:58:33 +00:00
2026-07-23 19:32:26 +00:00
2026-07-23 19:32:26 +00:00
2026-06-22 13:25:48 -07:00
2026-07-23 19:19:35 +00:00
2026-07-21 19:17:18 +00:00
2026-06-23 12:13:54 -07:00
2026-07-21 19:17:18 +00:00
2026-05-15 10:58:50 -07:00
2026-06-16 14:34:54 +02:00
2026-06-16 14:34:54 +02:00
2026-07-23 18:22:41 +00:00
2026-07-22 22:50:13 +00:00
2026-07-20 08:29:12 +00:00
2026-07-20 08:29:12 +00:00
2026-06-15 08:18:13 -07:00
2026-06-15 08:18:13 -07:00
2026-07-24 23:40:14 +00:00
2026-06-03 10:41:41 -07:00
2026-07-28 23:49:37 +00:00
2026-07-28 23:49:37 +00:00
2026-07-28 21:58:33 +00:00
2026-07-28 23:49:37 +00:00
2026-07-29 18:37:22 +00:00
2026-07-29 15:41:39 +00:00
2026-07-29 15:41:39 +00:00
2026-07-22 02:19:45 +00:00
2026-07-22 02:19:45 +00:00
2026-07-28 21:58:33 +00:00
2026-07-28 21:58:33 +00:00
2026-07-28 23:49:37 +00:00
2026-07-25 16:06:54 +00:00
2026-06-16 22:17:24 -07:00
2026-05-14 16:54:59 -07:00
2026-07-20 13:45:29 +00:00
2026-07-20 13:45:29 +00:00
2026-05-28 15:26:55 -07:00
2026-05-28 15:26:55 -07:00
2026-07-21 21:06:04 +00:00
2026-07-21 21:06:04 +00:00