Conversation
* feat(tracker): 落地匿名牌堆阶段 1 并记录 G1 收缩决策 将牌堆初始化为匿名槽,通过 unlocatedIdentities/deckIdentities 与 materialize 按需绑定真实身份;删除牌堆 recover/占位插入路径,并保留 阶段 1 旧手牌 interop。根据对照报告与三段回放数据,G1 决定 NO-GO/收缩, 阶段 2-7 不执行,并退役 G0/G1 活跃回放采集说明。 * chore: 清理为 G0/G1 决策服务的探针 * fix(tracker): 公共区来源缺匿名槽时补建正 ID 公共区 resolveKnownMoveCards 在端点无匿名槽可物化时,按协议正 ID 补建外部实体,避免 knownCards 被静默截短。
|
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 (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthrough本次变更将匿名牌从 Changes匿名身份与牌堆模型
移动与展示流程
测试与文档
Estimated code review effort: 4 (Complex) | ~60 minutes 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 |
resolveKnownCards 中仍停留在 unlocatedIdentities 的正 ID 既不会物化到匿名槽(端点无槽),也不会被当作游戏外缺失身份补建, 最终会静默从 knownCards 掉出。补一条 warn 打点使「揭示丢失」可观测。 新增用例覆盖端点无匿名槽的揭示场景。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/anonymous-slot-identity-decoupling-plan.md`:
- Around line 104-106: 将文档中匿名占位(anonymous placeholder)的 ID 约束从 id<=0 统一改为
id<0,确保与 Room.assertConservation() 及匿名身份测试的严格负数约定一致;仅修改该处相关表述。
- Around line 111-116: Update both fenced code blocks in the document to use the
text language identifier (` ```text `), including the block containing the
identity-state mapping and the additional block referenced by the review.
- Around line 122-126: 将 I1 的身份守恒公式基准改为 `deckIdentities`:把“全牌集”明确替换为
`deckIdentities`,以覆盖 `Room.materialize()` 运行时加入的合法正 ID;保持其余身份唯一性约束不变。
In `@docs/anonymous-slot-stage-1-comparison.md`:
- Around line 151-158: 更新文档第 3
节的回放结论,移除或改写“旧冲突路径为零触发”,明确旧路径已删除且未被运行时采集,不能作为观测证据;仅将仍在运行的路径标记为实际回放观测为 0,并同步调整 G1
的 NO-GO / 收缩结论以区分结构性结果与实证数据。
In `@src/tracker/Room.ts`:
- Around line 498-503: 更新 getPublicEndpointCards,先将 position 统一归一化为
POSITION_BOTTOM 等数值常量,或直接兼容字符串“bottom”,确保未归一化的 bottom 走牌底分支而不是默认牌顶分支;同时检查
resolveKnownMoveCards 和 materializeAtPublicEndpoint 的传入值,保持位置语义一致。
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e83c95ea-32dc-42a1-9195-fcf3cbdfbc13
📒 Files selected for processing (27)
docs/agents/card_tracker.mddocs/agents/serena.mddocs/agents/testing.mddocs/anonymous-slot-identity-decoupling-plan.mddocs/anonymous-slot-stage-0-conflict-baseline.mddocs/anonymous-slot-stage-1-comparison.mddocs/protocols/hand-exchange.mdsrc/tracker/Card.tssrc/tracker/CardCounter.tssrc/tracker/Room.tssrc/tracker/roomMovement.tssrc/tracker/roomMovement/candidates.tssrc/tracker/roomMovement/hiddenMarks.tssrc/tracker/roomMovement/sources.tssrc/tracker/runtime/trackerController.tssrc/tracker/traversalStats.tstests/tracker/anonymousIdentity.test.tstests/tracker/anonymousPileSpike.test.tstests/tracker/cardCounter.test.tstests/tracker/handCountObservation.test.tstests/tracker/handExchange.test.tstests/tracker/helpers/room.tstests/tracker/moveCardRoutes.test.tstests/tracker/pileDisplayOrder.test.tstests/tracker/publicCandidates.test.tstests/tracker/trackerController.test.tstests/tracker/traversalBaseline.test.ts
Summary by CodeRabbit
新功能
错误修复
测试
文档