feat(举手与协作): 顶栏「N 人举手」点开按题分组带错法;看板多一列「在写」点了就能看他的代码;帮完了回看板、还有人就「下一个」
学生那边按钮写「xuyue 在帮你 / 在看你的代码」。顺带修了老师接单后编辑器里留着自己的 草稿或模板、学生的代码插在前面、两边从此不一致的问题。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
573a0f967f
commit
1fcd12f6f4
13 files changed
+621
-178
No files matched your search
@@ -384,3 +384,26 @@ teacherSockets: Set<socket> // 在线老师,用于推 requests 与判断 no_
|
||||
`self_left` 是这一轮新加的:发起方原来跟对面收同一条 `done`,于是学生自己切走了
|
||||
却看到「老师已结束这次帮忙」—— 一句假话。发起方收到的 reason 由 `teardownRoom`
|
||||
的 `initiator` 决定。
|
||||
|
||||
### 2026-10-13:举手与协作重设计(画布「举手与协作」HcPanel / HcPageA / HcTable)
|
||||
|
||||
用户说的用法:**协作为主**(老师在教师电脑上点进去远程改,不是走过去看);同一道题好几个人
|
||||
举手就**停下来全班讲**;协作用来帮个别同学的个别问题。方案选的是 A「跳到题目页帮」——
|
||||
演示学生的错误时题目和代码要并排,弹层里做不到(B 在看板弹层里帮,被否)。
|
||||
|
||||
- **老师主动打开**(原第 2 节的非目标,现在要了):学生的编辑器挂上 / 换题 / 卸载时报
|
||||
`{type:"presence", problemId, language}`,服务端记在内存(`state.ts` 的 presences),
|
||||
课堂看板的 `editing` 字段读它,表里多一列「在写」。老师点它发 `{type:"peek", studentId}`,
|
||||
开一间 `mode: "peek"` 的房间,没有求助记录。用户定的:**学生不能拒绝,但必须看得见**
|
||||
(按钮写「xuyue 在看你的代码」),**老师可以改**。学生正举着手的话 peek 就是接单;
|
||||
被看着时举手,直接算这位老师接了。
|
||||
- **「讲完了,都放下」**:`{type:"dismiss", problemId}`,这道题还在排队的手一次放下,学生收到
|
||||
`help_status: dismissed`(「xuyue 讲了 2020,还不会就再举手」)。
|
||||
- **举手面板写错法**:求助记录带 `latest`(这道题最后一次代码提交,和看板格子同形,前端走同一个
|
||||
`errorKind`)。举手之后又判完一次会刷新(`websocket.ts` 的判题事件桥调 `refreshRequestLatest`)。
|
||||
- 顶栏「N 人举手」点开是挂在按钮下面的面板,不再是弹框。
|
||||
- **跳转等房间开好再跳**(`CollabHost`),不在点的那一刻跳:服务端可能拒了。
|
||||
- 协作条:「帮完了」回到这个班的看板,「下一个:xx 2020 →」直接接等得最久的那个。
|
||||
- 修了一个从 09-16 起就在的 bug:老师编辑器里原有的草稿 / 模板在协作开始时没清,学生的代码
|
||||
同步过来插在它前面,两边从此不一致(`collabDoc.ts` 的注释原来说 yCollab 会覆盖编辑器,
|
||||
实测不会)。有模板的题每次接单都中。
|
||||
Reference in new issue
Block a user