weichen and Cursor
c7eab1f7d1
fix(chat): add RWMutex to Session and snapshot accessors to close data race
...
- Session gains mu sync.RWMutex + SnapshotMessages/AppendMessage/
TouchLastAccessed/SetProjectID/Project accessors
- sendMessageInternal, hydrateVisibleHistory, getOrCreateSession,
cleanStaleSessionsLocked, handleChat, handleChatStream,
enrichSessionWorkflowStage, bindSessionDocumentSummaryReader all use
locked accessors instead of raw field access
- ProjectID mutation now goes through SetProjectID (only when changed),
closing the cross-project pollution window in handleChat/handleChatStream
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 04:55:55 +00:00
..
2026-09-15 14:40:56 +00:00
2026-09-15 14:40:56 +00:00
2026-09-17 09:15:15 +00:00
2026-09-17 09:15:15 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 14:40:56 +00:00
2026-09-13 02:50:23 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 09:42:07 +00:00
2026-09-16 09:42:07 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 15:40:10 +00:00
2026-09-16 09:42:07 +00:00
2026-09-13 02:50:23 +00:00
2026-09-13 02:50:23 +00:00
2026-09-13 02:50:23 +00:00
2026-09-16 15:37:50 +00:00
2026-09-13 04:27:01 +00:00
2026-09-19 04:55:55 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 13:00:33 +00:00
2026-09-13 12:25:22 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 14:40:56 +00:00
2026-09-18 03:39:08 +00:00
2026-09-18 03:39:08 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 14:40:56 +00:00
2026-09-17 17:03:08 +00:00
2026-09-17 17:03:08 +00:00
2026-09-15 14:40:56 +00:00
2026-09-13 02:50:22 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-13 11:12:03 +00:00
2026-09-13 02:50:22 +00:00
2026-09-16 03:20:32 +00:00
2026-09-13 11:12:03 +00:00
2026-09-13 11:12:03 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 14:40:56 +00:00
2026-09-19 04:55:55 +00:00
2026-09-16 01:01:39 +00:00
2026-09-16 01:01:39 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 10:42:20 +00:00
2026-09-15 14:40:56 +00:00
2026-09-18 03:44:08 +00:00
2026-09-13 02:50:23 +00:00
2026-09-15 13:00:33 +00:00
2026-09-15 13:00:33 +00:00
2026-09-13 02:50:23 +00:00
2026-09-17 02:04:51 +00:00
2026-09-13 02:50:22 +00:00
2026-09-13 02:50:23 +00:00
2026-09-14 14:07:05 +00:00
2026-09-16 15:40:10 +00:00
2026-09-16 09:42:07 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 09:42:07 +00:00
2026-09-15 14:40:56 +00:00
2026-09-13 22:37:24 +00:00
2026-09-17 09:39:59 +00:00
2026-09-17 09:39:59 +00:00
2026-09-17 09:46:26 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 09:42:07 +00:00
2026-09-15 14:40:56 +00:00
2026-09-16 09:42:07 +00:00
2026-09-16 09:42:07 +00:00
2026-09-17 14:07:52 +00:00
2026-09-19 04:55:55 +00:00
2026-09-16 15:43:13 +00:00
2026-09-17 16:42:56 +00:00
2026-09-19 04:55:55 +00:00
2026-09-14 08:39:44 +00:00
2026-09-19 04:55:55 +00:00
2026-09-17 08:18:11 +00:00
2026-09-17 08:18:11 +00:00
2026-09-15 13:08:25 +00:00
2026-09-15 13:08:25 +00:00
2026-09-15 14:40:56 +00:00
2026-09-13 02:50:23 +00:00
2026-09-15 13:00:33 +00:00
2026-09-18 03:39:08 +00:00
2026-09-16 09:33:41 +00:00
2026-09-13 02:50:22 +00:00
2026-09-15 13:00:33 +00:00
2026-09-17 09:46:09 +00:00
2026-09-13 02:50:23 +00:00
2026-09-18 03:02:06 +00:00
2026-09-13 02:50:22 +00:00
2026-09-13 02:50:22 +00:00
2026-09-13 02:50:23 +00:00
2026-09-17 04:25:17 +00:00
2026-09-18 03:44:08 +00:00
2026-09-16 09:42:07 +00:00
2026-09-15 14:23:07 +00:00
2026-09-16 15:39:01 +00:00
2026-09-17 00:52:01 +00:00
2026-09-16 03:20:32 +00:00
2026-09-17 02:04:51 +00:00
2026-09-15 14:40:56 +00:00
2026-09-15 14:40:56 +00:00