feat: move range review with progression analysis and board text render#6
Closed
layiku wants to merge 6 commits into
Closed
feat: move range review with progression analysis and board text render#6layiku wants to merge 6 commits into
layiku wants to merge 6 commits into
Conversation
…l input Add Alt+drag range selection on WinrateTimelineV2 to select a move range (e.g., moves 221-250) for focused teaching analysis. Also supports manual text input in Chinese, Japanese, Korean, and English. - New shared parser (moveRange.ts) ensures consistent range detection across renderer and main process - Timeline shows semi-transparent highlight and badge for selected range - Auto-fills teacher input; sends key move screenshots + KataGo analysis to teacher agent for range review - Uses local merged Map to avoid React stale state reads - Controlled range props prevent highlight persistence bugs Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Split parser into contextual patterns (always safe) and bare numeric ranges (short commands only) to prevent false positives on dates, scores, and winrate descriptions - Require gameId for parser-derived move-range intent classification - Remove hardcoded 400 upper bound from analyzeMoveRange tool - Add early gameId guard for mode='move-range' in runTeacherTask - Add 28 parser tests and 5 intent classifier contract tests Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The test expected runTeacherAgentSession signature on a single line but the actual function spans multiple lines. Use [\s\S]*? to match across line breaks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…move-range review) Accept main branch version for overlapping files since main has more mature move-range implementation with shared module, validation, and key-move-only analysis. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ext tool Add MoveRangeProgression (shared pure function + type) computing absolute winrate/score trajectory, total change, max swing, and key swing moves. Extend key-move summaries with moveColor and blackWinrate/ScoreLead before and after values. Update prompt formatter to output progression overview with coverage-aware labels. Add board.renderRangePosition agent tool for text-based board rendering (reuses go/boardState with initialStones support). Update move-range teaching prompt to guide knowledge.searchLocal and board tool usage. Extract renderBoardText to go/boardTextRender.ts, fully reusing coordToGtp/gtpToCoord from boardState (no local GTP_LETTERS). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…dText Replace inline rendering logic with ts.transpileModule + dynamic import of the real renderBoardText function. Use before/after hooks instead of ordered test cases for setup and cleanup. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Owner
|
感谢 layiku 提供 PR #6 的区间走势计算和棋盘文本渲染。这两块对 GoMentor 的区间复盘很有价值:progression 能帮助老师先讲清一段棋的胜率/目差走势,board text render 则让工具链在没有截图时也能有稳定棋盘文本。本次已选择性吸收 buildMoveRangeProgression() 和 renderBoardText(),并与当前 shared move-range parser、key-move-only 精读、evidence boundary、quality gate 和 teacher persona/session 体系对齐;没有原样合并重复 moveRange 路径或逐手高成本长区间分析。再次感谢! |
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
buildMoveRangeProgression()纯函数,从区间分析数据计算胜率/目差走势、单手最大波动、top-5 波动手renderBoardText()到独立模块,使用buildBoardState()计算真实棋盘状态(含提子逻辑)ts.transpileModule()编译产物导入真实函数测试,新增 14 个走势计算测试Key changes
WinrateTimelineV2.tsxApp.tsxmoveRangeAnalysis.ts(new)boardTextRender.ts(new)moveRangeReview.ts(new)teacherAgent.tsmoveRange.ts(new shared)Test plan
node --test tests/board-text-render.test.mjs— 19 tests passnode --test tests/move-range-analysis.test.mjs— 14 tests passpnpm check(test + typecheck + build) — all pass🤖 Generated with Claude Code