Часть #1090.
Доказано прогоном
Две пчелы работали одновременно с непересекающимися границами. Каждую обвинили в записях другой:
06:56:18 queen.observer.outOfBounds issue=#1098
paths = rings/SR-02/ChatViewModel.swift <- файл задачи #1112
07:00:03 queen.observer.outOfBounds issue=#1112
paths = BR-OUTPUT/ChatPanelView.swift, tests/swift/ChatSSEEndToEndTest.swift <- файлы #1098
Ни одна границу не нарушила. Обе получили выговор.
Причина
QueenBranchCommitter.changedPaths спрашивает git, что изменилось в общем рабочем дереве относительно снимка, сделанного при старте пчелы. Пока пчела одна, ответ — её работа. Как только их две, в ответ попадает всё, что успела написать соседка.
Это третье ложное обвинение подряд после #1102 и #1114, и оно опаснее обоих: те были постоянными и потому заметными, это появляется только при параллельной работе — то есть ровно тогда, когда система делает то, ради чего построена.
Коммит в ветку при этом фильтруется по границе (в ветку #1112 попал только её файл), так что чужая работа в чужую ветку не утекла. Врёт именно наблюдатель.
Готово, когда
- Пчела, писавшая только внутри своей границы, не получает
outOfBounds при работающей рядом второй пчеле.
- Настоящий выход за границу по-прежнему виден, в том числе когда параллельно работает вторая пчела: проверка ломается, если сузить измерение до «ничего не замечать».
- Доказано прогоном двух одновременных задач, а не рассуждением.
Границы
rings/SR-02/QueenBranchCommitter.swift и rings/SR-02/ChatViewModel.swift.
Часть #1090.
Доказано прогоном
Две пчелы работали одновременно с непересекающимися границами. Каждую обвинили в записях другой:
Ни одна границу не нарушила. Обе получили выговор.
Причина
QueenBranchCommitter.changedPathsспрашивает git, что изменилось в общем рабочем дереве относительно снимка, сделанного при старте пчелы. Пока пчела одна, ответ — её работа. Как только их две, в ответ попадает всё, что успела написать соседка.Это третье ложное обвинение подряд после #1102 и #1114, и оно опаснее обоих: те были постоянными и потому заметными, это появляется только при параллельной работе — то есть ровно тогда, когда система делает то, ради чего построена.
Коммит в ветку при этом фильтруется по границе (в ветку #1112 попал только её файл), так что чужая работа в чужую ветку не утекла. Врёт именно наблюдатель.
Готово, когда
outOfBoundsпри работающей рядом второй пчеле.Границы
rings/SR-02/QueenBranchCommitter.swiftиrings/SR-02/ChatViewModel.swift.