Conversation
* fix(tracker): 确定明牌离开牌堆时占位不顶回原槽 MoveType=18 暗拿后明牌再出现时,暗占位不得 replaceCard 污染牌底/牌顶已确认段; 恢复 insertUnknownPlaceholderIntoPile,公共区残留回补与 swap 路径对齐。 * fix(tracker): 木马迁座后全明快照收敛弱候选 装备容器迁座后 FromID 可能仍是旧座位,首次揭示明牌时用目标 mark 匿名槽物化; 全明快照按协议 CardIDs 收敛弱候选。测试不再预置快照明牌为已知 mark。 * chore(tracker): 清理牌底/木马修复的小冗余 去掉重复 missingIDs 与 knownIDs 校验,insertUnknownPlaceholderIntoPile 改用 Zone 类型。
* fix(tracker): 恢复匿名牌堆洗牌后的暂停追踪 匿名负 ID 牌堆洗牌时,从未定位身份和状态索引恢复暂停追踪实体。分类仅以小规模剩余牌堆排除身份,并在弃牌重置循环中统计匿名占位,避免对大弃牌堆计算差值。 * fix(tracker): 区分洗牌中的 APPEARED 暗身份 将 CardCounter APPEARED 桶中的未明示正 ID 归入 appearedHiddenIdentityCards,并补充木牛流马暗标记洗牌回归,锁定暂停结果与诊断分类。
空弃牌堆的首次洗牌不再执行协议牌堆身份分类;补充首次洗牌回归,并让暂停追踪相关用例明确先构造弃牌堆回收。
* wip: 思泣 巧织 * fix(tracker): 木马弱候选整手揭示反向收敛,思泣/巧织诊断瘦身 木马(木牛流马 mark:700)弱候选与已知牌来源物化冲突修复: - A(时序): 新增 resolveHiddenMarkCandidatesFromFullHandReveal,在 resolveKnownMoveCards 之前对整手完整揭示做局部反向收敛——不在揭示 ID 里的候选明牌解到 mark,被挤出的匿名占位挤回来源手牌,消除 createExternal 与"明牌未找到可立即置换的手牌占位"告警。 - B(占位守恒): bindConfirmedMarkCardToMarkSpace 的 player-mark 占位回收 改为挤回 sourceSeat 手牌而非丢 outside(容器投影仍回 outside)。 - 复现守卫: tests/tracker/trojanFullHandReveal.test.ts。 技能打磨: - SiQi: 移除牌底端点诊断脚手架与 afterMove 二次对账(连带删 Room.moveCards 死钩子),收敛为单条 debug 日志,功能推断不变。 - QiaoZhi: 删除纯诊断的 getAnonymousHandEntityIDs / anonymousHandEntityIDsBefore 与 getUnknownPlayerCards,结算日志精简;差集反推逻辑不变。 全量 284 条 tracker 测试通过;typecheck/lint/build 清洁。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(tracker): 收口 nitpick:共享 move 事件工具与占位筛选 - 抽出 getRaw/getCount/hasPositiveID 到 moveEventUtils - 整手揭示回收占位对齐 mark/spellID 筛选 - 巧织正常跳过日志降为 debug;公共区 subZone 注释客观化 --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* fix(tracker): centralize hidden mark placeholder reconciliation * fix(tracker): warn on unrecoverable mark overflow
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (31)
💤 Files with no reviewable changes (3)
📝 WalkthroughWalkthrough本次变更细化回合与阶段生命周期处理,移除 GameState 中的 DOM/战法清理职责;重构暗标记候选、匿名占位和牌堆洗牌逻辑;新增巧织、思泣移动事件装饰及对应测试覆盖。 Changes记牌器生命周期与移动追踪
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Protocol
participant MoveEventHandlers
participant QiaoZhi
participant SiQi
participant Room
Protocol->>MoveEventHandlers: dispatch spell move event
MoveEventHandlers->>QiaoZhi: route spellID 3544
QiaoZhi->>Room: confirm displayed-card difference
MoveEventHandlers->>SiQi: route spellID 3543
SiQi->>Room: attach sourceCards and combinationID
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary by CodeRabbit