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-28 15:50:45 +00:00
2026-06-25 18:15:48 -07:00
2026-07-28 05:17:25 +00:00
2026-07-29 17:38:20 +00:00
2026-07-23 01:00:35 +00:00
2026-07-08 14:13:59 -07:00
2026-07-09 00:17:38 +00:00
2026-07-22 16:30:12 +00:00
2026-07-24 04:37:01 +00:00
2026-07-08 00:15:49 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-27 02:16:11 +00:00
2026-05-28 14:54:39 -07:00
2026-07-06 10:17:15 -07:00
2026-07-28 16:57:17 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-15 05:21:13 +00:00
2026-07-08 00:15:49 +00:00
2026-07-14 01:49:16 +00:00
2026-06-27 19:34:10 +00:00
2026-07-28 05:17:25 +00:00
2026-07-24 14:48:04 +00:00
2026-07-22 19:43:35 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 02:45:55 +00:00
2026-07-08 00:15:49 +00:00
2026-07-22 20:23:35 +00:00
2026-07-22 16:30:12 +00:00
2026-07-15 20:59:21 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 15:32:36 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 17:38:20 +00:00
2026-07-29 17:38:20 +00:00
2026-07-28 05:17:25 +00:00
2026-07-29 17:38:20 +00:00
2026-07-23 19:19:35 +00:00
2026-07-27 21:17:42 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-28 03:33:31 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 17:38:20 +00:00
2026-07-29 01:16:29 +00:00
2026-07-23 21:06:37 +00:00
2026-07-29 01:16:29 +00:00
2026-07-22 16:30:12 +00:00
2026-07-08 00:15:49 +00:00
2026-07-22 16:30:12 +00:00
2026-07-28 15:50:45 +00:00
2026-07-22 19:43:35 +00:00
2026-07-28 22:53:33 +00:00
2026-07-24 04:37:01 +00:00
2026-07-29 00:30:11 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-17 15:45:48 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 13:11:16 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 23:18:06 +00:00
2026-07-23 23:18:06 +00:00
2026-07-28 05:26:16 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 18:37:22 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 19:19:35 +00:00
2026-07-29 18:37:22 +00:00
2026-05-12 18:40:53 -07:00
2026-07-28 05:26:16 +00:00
2026-07-29 18:37:22 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 18:37:22 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 12:13:14 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 00:02:15 +00:00
2026-07-08 00:15:49 +00:00