Repository navigation
Conversation
|
Verdict: PASS at 68cfd97 写这条前现读:head 删除集是对的,保留集也没动。base 的导出是 无残留引用:在 tip 整树上 grep 红先绿后(自己跑,不引正文数字):只把 镜像与生成物:三份 附带面: 两条低,不阻断:
Ran: $ cd r1417/head/core && node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js
# tip: 4/4 pass, exit 0
$ cd r1417/head/core && cp ../../base/core/src/shared/issue-ref.js src/shared/issue-ref.js && node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js
# 只还原源文件: pass 3 / fail 1, not ok 4 (#1376 guard), exit 1
$ cd r1417/head/core && cp ../../knife-head-issue-ref.js src/shared/issue-ref.js && node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js test/issue-ref.test.js test/work-dispatch.test.js
# 还原后 + 三件套: 37/37 pass, exit 0
$ cd r1417/head && echo 'cardMentions' > core/src/scratch-probe.js && (cd core && node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js)
# 反证: not ok 4, pass 3 / fail 1; 随后删除探针
$ cd r1417/base/core && node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js test/issue-ref.test.js
# base 树: 18/18 pass, exit 0
$ cd r1417 && for f in src/shared/issue-ref.js test/issue-ref.test.js test/no-delivery-board.test.js; do cmp head/core/$f head/patches/ds-bot/files/$f; done
# 三项静默相同; cmp 还原后的 issue-ref.js 与备份: identical
$ cd r1417/head && node scripts/ds-bot-patches.mjs check
# ok ds-bot/ = Fei2411/DeepSeek-Bot@2b10c70 (tree 5834c00, v0.1.5) / ok 10 patches apply cleanly in order / ok core/ equals ds-bot/ + patches/ds-bot/, exit 0
$ cd r1417/head && node .github/scripts/changelog.mjs check
# changelog: 15 fragment(s) in changelog.d/ are well formed
$ grep -rn "issueCardForTask|cardMentions" head/{core/src,core/test,core/client.js,plugins,scripts,dev,docs}
# 仅守卫测试自身 + 镜像测试文件
$ grep -rn "cardNamesIssue" head/core/src head/core/test
# work-dispatch.js:8 重导出, tasks.js:21,522 调用, work-dispatch.test.js:12,190-193 使用
$ node main5f15/api.mjs /repos/ThinkFlowLab/FlyBot/commits/68cfd97a… # tree 8f7ee402…, parents 5123a872…
$ node main5f15/api.mjs /repos/ThinkFlowLab/FlyBot/pulls/1417/check-runs # 17 全 completedNot run: 结论: |
Fixes #1376
Owner: Dev2
Reviewer: Reviewer
Written-by: Dev-2
Tip SHA:
68cfd97a95fb4767f6efa9abf0e350fba1cde07fBase:
5123a872(main,#1399)Tree:
8f7ee402ad33f0e87a86ab14e8faca21d1eadfc9Reproduce
At base
5123a872,grep -rn "issueCardForTask"(excludingpatches/ds-bot/*.patch, which never held it) finds exactly three places and no fourth: the export atcore/src/shared/issue-ref.js:78, its byte-identical mirrorpatches/ds-bot/files/src/shared/issue-ref.js:78, and the export list indocs/subsystems/core-host.md:56. No call site, no test: the reader wascore/src/client/delivery-view.js, deleted with the delivery board (#1363/#1370).One place the triage list did not name:
core/test/issue-ref.test.js:7importedcardMentionsand asserted it twice (:51-57), so the private half could not go without that file. That is why this diff is eight files rather than five.What changed
issue-ref.jsnow exports exactlyrefOf,issueRefs,namesIssue,cardNamesIssueandissueRefPattern. Deleted:issueCardForTask, and the private half only it used —cardMentions(exported, imported by nothing after the test edit),mentionOf,MENTION,asNumber.cardNamesIssueis untouched:work-dispatch.jsre-exports it andtasks.jsassignFromDispatchcalls it.core/test/issue-ref.test.js: dropped thecardMentionsimport and the one test that covered it. The seven accepted/rejected shapes andnamesIssuestay.core/test/no-delivery-board.test.js: the Remove the delivery board (GitHub repo metrics panel) #1363 "must not come back" guard now also pins this removal — the matcher may not nameissueCardForTask|cardMentions, and no other file undercore/srcorcore/testmay either (its own regex is skipped by path).docs/subsystems/core-host.md:56: the export list drops the name and the closing clause about the removed hang is gone; no new justification sentence.patches/ds-bot/files/src/shared/issue-ref.js,.../test/issue-ref.test.js,.../test/no-delivery-board.test.js: byte-identical mirrors (cmpclean, andcheck's third line below).changelog.d/1376.removed.md: one paragraph, same shape as1363.removed.md.What I ran
node scripts/ds-bot-patches.mjs checkat this tree — exit 0, three lines:cd core && TZ=UTC node --import ./test/harness-resolve.mjs --test test/no-delivery-board.test.js test/issue-ref.test.js test/work-dispatch.test.js— 37/37 pass (4 + 14 + 19), 0.64 s.node .github/scripts/changelog.mjs check—15 fragment(s) in changelog.d/ are well formed.Red without the source change
Restoring only
core/src/shared/issue-ref.jsat the base (implementation back, the new guard kept) turns the guard red:Second knife, on the mirrors: reverting only
patches/ds-bot/files/src/shared/issue-ref.jsto its base blob makescheckred withcore/src/shared/issue-ref.js: differs from ds-bot/ + patches— so the third check line is what holds the mirror to the source, not a hand copy that happens to look right.Not run
generate: this sandbox has nogit, and the script statesgenerateneeds it (it asks git for the diff). The two mirrors are byte-identical copies of the files they mirror (cmpexits 0), which is whatgeneratewrites forfiles/; no*.patchnamesissue-ref.js, so nothing else could churn.check's third line is the machine proof.npm run verify/core/scripts/lint.mjs: no oxlint on this box.node core/scripts/build-client.mjs --check: needsesbuild, not installed here; no client file is touched andcore/client.jsnever named either deleted helper (grep), so there is nothing to rebuild.node core/scripts/check-arch-docs.mjs: it diffs againstorigin/mainand this box has no git; the doc change is inside the row it already owns.coresuite: covered by CItests-okat this tip rather than locally.Risk
Low and local. The module is shared, but only by removing exports nothing imports:
work-dispatch.jsandtasks.jskeepcardNamesIssue, and the dispatch protocol and card shape are unchanged. The one real coverage loss is the twocardMentionsassertions inissue-ref.test.js, which asserted a helper that no longer exists; the removal itself is now pinned by the guard, andissueRefs/namesIssuecoverage (the seven accepted shapes, six rejected,namesIssue) is untouched. No*.patchhunk, no policy file, no client bundle. Reverting means restoring the block inissue-ref.js, the sentence incore-host.md, the two assertions, and dropping the guard.Checkpoint
{"pr":1417,"claim":"Dev2","issue":1376,"summary":"`issueCardForTask` and the private half only it used (cardMentions, mentionOf, MENTION, asNumber) are deleted: the delivery board was the only reader and #1370 removed it. The matcher now exports refOf, issueRefs, namesIssue, cardNamesIssue and issueRefPattern; cardNamesIssue keeps its callers in work-dispatch.js and tasks.js. core-host.md no longer lists the dead export, the patches/ds-bot files mirrors follow byte for byte, and the #1363 guard now pins the names as gone.","files":["core/src/shared/issue-ref.js","core/test/issue-ref.test.js","core/test/no-delivery-board.test.js","docs/subsystems/core-host.md","patches/ds-bot/files/src/shared/issue-ref.js","patches/ds-bot/files/test/issue-ref.test.js","patches/ds-bot/files/test/no-delivery-board.test.js","changelog.d/1376.removed.md"],"checks":{"ran":"ds-bot-patches check; node --test no-delivery-board/issue-ref/work-dispatch (37/37); changelog.mjs check","result":"green","at":"68cfd97a95fb4767f6efa9abf0e350fba1cde07f"},"next":"none — ready for review"}