Add overflow disposal crate and add right-click remove search 添加板条箱溢出销毁模式和右键清除搜索 - #4690
Conversation
QiuShui1012
commented
Sep 2, 2026
- resolved [TODO] 板条箱销毁模式 #4665
- resolved [Feature] 板条箱搜索栏右键清空 #4689
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
Reason: script execution via -e/-c flag Reply |
Reason: Security scan — [MEDIUM] Archive extraction to sensitive path: Archive command 'unzip' extracts to a potentially sensitive location Reply |
|
审查完成。以下是审查意见(会由 webhook 自动发布,不再执行任何 gh 命令): 代码审查摘要 — PR #4690操作: converted_to_draft(按 draft 模式只报实质问题) Feature 映射(对照 PR 描述 + issue 标题):
🔴 关键
|
Reason: Security scan — [MEDIUM] Archive extraction to sensitive path: Archive command 'unzip' extracts to a potentially sensitive location Reply |
|
💾 Self-improvement review: Patched SKILL.md in skill 'anvilcraft-storage-system-review' (1 replacement). |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
|
❓ 我在审查 PR #4690 时被 terminal 反复阻塞(多条命令触发超时审批),已经收集到绝大部分信息,但还剩一个关键编译正确性问题想确认:新加的 AT
(本 PR 其余核心逻辑我已完整核查:dispose 销毁语义、序列化不持久化 dispose(靠方块状态重算)、各插入路径同步、StorageServerStub view!=null 修复、右键清空搜索、Jade 显示名等。)
Reply with the number, the option text, or your own answer. |
|
所有验证已完成。核心情况已清楚:参考文件记录的是旧 head 的问题,本次 synchronize 事件的 head 已推进,fix commit 代码审查摘要 — PR #4690操作: synchronize(head 更新至 ✅ 修复确认(对照先前审查)之前审查(converted_to_draft 时)发现的 🔴 槽版 insertItem「拒绝 ≠ 溢出」无条件销毁 bug 已修复(fix commit 新逻辑先拿
另修复的杂项: 🔴 关键(无)修复后核心路径正确,未发现新的关键级问题。
|
| 声称 | 状态 | 对应文件 |
|---|---|---|
| #4665 板条箱销毁模式 | ✅ | OverflowDisposalItemStacksResourceHandler(新), CrateBlock, CrateBlockEntity, CrateStorage, StoragePortBlockEntity, CapabilitiesEventListener, StorageServerStub, CrateProvider(新), AnvilCraftJadePlugin, BlockLang, en_us/en_ud |
| #4689 搜索栏右键清空 | ✅ | StorageScreen.mouseClicked |
| 标题跟随 dispose 状态 | ✅(附带) | StorageScreen.refreshTitle + AT |
| Jade 显示名 | ✅(附带) | CrateProvider + JadeLang |
结论: COMMENT — 先前审查的 🔴 关键 bug 已在 fix commit 中正确修复(含无递归论证与基类语义验证),无新增关键问题。剩余
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverflowDisposalItemStacksResourceHandler.insertItem(slot, ...) |
异种槽直写(应跨槽存而非销毁)、满空间溢出(应销毁)、增长槽越界(原样返回)、simulate 一致 | 🔴 |
CrateBlock.updateDisposeState |
虚空物质放置/拆除/板条箱移除级联刷新邻箱、chunk 重载后 dispose 恢复 | 🟡 |
CrateBlock.hasAdjacentVoidMatter |
6 向 vs 斜角判定(若预期 8 向需补对角线) | 🟢 |
StorageScreen 右键清空 |
有文本右键清空 + 聚焦、空文本右键仅聚焦、Esc 失焦 | 🟢 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'anvilcraft-storage-system-review' (1 replacement). · Patched references/pr4690-disposal-crate-review.md in skill 'anvilcraft-storage-system-review' (1 replacement). |
…hbor sync - CrateBlockEntity.refreshDispose now recomputes the dispose blockstate (via CrateBlock.updateDisposeState) before syncing the storage handler, closing the stale-blockstate window on all external entry points - onLoad delegates to refreshDispose (single entry, same behavior) - getView only refreshes nearby crates whose storage is actually included in the search view (no per-RPC writes for absent storages) - hasAdjacentVoidMatter javadoc notes the 6-direction check matches the void matter decay adjacency checks
Reason: script execution via -e/-c flag Reply |
|
gh auth 失效(token invalid),但 PR 标题已清晰双语、无需修改。所有验证已完成。汇总结论: 代码审查摘要 — PR #4690操作: synchronize 📋 声称验证表
✅ 终态更新(head 推进至
|
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverflowDisposalItemStacksResourceHandler.insertItem(slot,...) |
异种槽固定槽直写(拒绝→无槽插入)、满仓完全拒绝(销毁)、空间不足部分插入(销毁剩余)、增长槽越界原样返回 | 🔴 |
CrateBlockEntity.refreshDispose() |
状态未变(幂等 no-op)、状态变化(setBlock 级联 + 邻居 no-op)、客户端/服务端分侧 | 🟡 |
StorageScreen.refreshTitle() |
打开 GUI 期间放置/移除虚空物质 → 标题切换与 titleLabelX 重算 | 🟡 |
| 右键清空搜索 | 空搜索框右键(仅聚焦)、非空右键(清空+重排序+服务端同步)、右键后 Esc/聚焦行为 | 🟢 |
| 重启恢复 | dispose=true 存档重启 → onLoad 重算恢复销毁模式 | 🟢 |
结论: COMMENT — 早前 🔴 已修复且本次 head 落实了全部遗留
由 Hermes Agent 审查
|
merge 结构确认:head = merge(父1 = PR 代码 4ebdc,父2 = dev 上的 #4688),patch-diff 净范围 15 文件 = 权威审查范围(#4688 已并入 dev、两边抵消,不属本 PR 内容)。所有验证完成。 代码审查摘要 — PR #4690操作: ready_for_review(re-review,head 已从参考记录的 本次 head 新增内容(相对上次终态): fix commit ✅ 上次 review 遗留项逐项核验(reference 终态 vs 新 head)
💡 建议(非阻塞)
🟢 看起来不错
📋 声称验证表
结论: COMMENT(正向) — 历史 🔴 与全部遗留 由 Hermes Agent 审查 |
|
💾 Self-improvement review: Patched SKILL.md in skill 'anvilcraft-storage-system-review' (1 replacement). · Patched references/pr4690-disposal-crate-review.md in skill 'anvilcraft-storage-system-review' (1 replacement). |
|
💾 Self-improvement review: Patched references/pr4690-disposal-crate-review.md in skill 'anvilcraft-storage-system-review' (1 replacement). · Patched SKILL.md in skill 'anvilcraft-storage-system-review' (1 replacement). |
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
|
PR #4690 状态为 closed,按 webhook 审查规则(action=closed → stop here,不发布评论),本次不输出审查意见、不发表任何评论。 (补充: |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
|
|