Repository navigation
feat(backend): 同步 ZZZ backend 演进(open_game + click/input/screen_area CRUD,7→11 tool) #605
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
266 commits
Select commit
Hold shift + click to select a range
5bd54a5
docs: 新增 runtime_launcher 架构文档(照搬 ZZZ + SR 现状适配)
DoctorReid 26a57c1
feat(skills): 新增 sr-od-dev-* 3 个开发 skill,采纳 superpowers 流程方法论
DoctorReid a49142e
docs(harness): 勘误 MCP 状态(已落地)+ skills 入口登记
DoctorReid c63446c
feat(common): 带进 screen_match.py(画面匹配,MCP analyze 增强依赖)
DoctorReid 631a236
feat(backend): 同步运行态管理(RunSlot + 可查可停 + close_game + analyze 画面匹配)
DoctorReid 3b9635c
docs(backend): 同步运行态文档(7 tool/7 端点/RunSlot)+ design-principles
DoctorReid bd94140
fix(backend): RunSlot docstring spec 引用改指 SR 版(2026-07-05-mcp-run-sta…
DoctorReid 8f0cc23
merge: MCP backend 运行态完善(RunSlot 单跑道 + 可查可停 + close_game + analyze 画面…
DoctorReid 7bb747e
docs(common-sync): §5 token 清单补 5 类照搬缺口(MCP backend 同步实战)
DoctorReid c4743d8
fix: address CodeRabbit PR #604 review(4 个 SR-specific 发现)
DoctorReid 93de91f
feat(backend): 同步 ZZZ backend 演进(open_game/click_game/input_text/scre…
DoctorReid 39996c5
docs(backend): 同步 mcp/http/architecture 等到 11 tool(open_game + click/…
DoctorReid 2d422b9
ci: 照搬 test-check.yml(PR 跑 sr-od-test 测试,同分支机制)
DoctorReid a60fcff
ci(test-check): 去掉通知类测试配置(SR 无 requires_secrets 测试 / 无 PUSH_ secret)
DoctorReid 607995a
fix(pyproject): 加 [tool.pytest.ini_options] pythonpath=["src"],修 CI t…
DoctorReid a860aa2
ci/build: CodeRabbit #605 review — test-check 安全加固 + build_full copy /Y
DoctorReid db851d6
docs: CodeRabbit #605 — architecture tool 数 7→11 + runtime_launcher C…
DoctorReid df5ace5
ci(test-check): 预下载 YOLO 模型(CI 直连 github,绕过 ghfast.top 代理)
DoctorReid dc38a98
feat(backend): 同步 analyze 落盘返 screenshot_path + _save_screenshot 提到 b…
DoctorReid 6b4a8e6
feat(common): 同步 one_dragon/qt/onnxocr 内容更新(ZZZ #2460)
DoctorReid 9862055
feat(backend): 同步 MCP 应用运行能力 + 封装服务(ZZZ #2460,roadmap B-2)
DoctorReid e492782
docs+manifest: 同步 backend 文档到 #2460 + regenerate module_manifest
DoctorReid 1b370c0
sync: common 文案/账号确认 + Deep Wiki 配置(ZZZ 582d9984/a3365dc4/3c6309c9)
DoctorReid 191e76f
feat(backend): 同步 MCP tool 规范化 + 游戏画面建档(ZZZ 7277d040)
DoctorReid 89524a4
revert: 移除 .devin/wiki.json(ZZZ 结构/玩法专属,naive 迁移不足)
DoctorReid f4ba2cd
feat(common): 同步 one_dragon/qt app 运行/分组/Discord/拖动等(ZZZ 近期)
DoctorReid c811abd
feat(backend): MCP 配置修改工具 + run_operation dataclass + analyze vision_…
DoctorReid a2cd936
feat(skills): 新增 sr-od-dev-pr-review + screen-onboarding + skill-guid…
DoctorReid 5617028
feat(sr_od): 保留 app/sr_application_launcher 向后兼容入口
DoctorReid 34f97a3
chore: .gitignore 忽略 *.exe.bak
DoctorReid e31f2ce
feat: 同步 ZZZ dev 方法论到 SR (skills + AGENTS + 同步文档)
DoctorReid 8c0703a
fix(daemon): .env 条件追加 + 端口文档订正
DoctorReid ef4c565
fix(one_dragon): match_template 防 source<template 崩溃
DoctorReid 0db280b
docs(sr_od/backend): check_game_window win_title 语义说明
DoctorReid ec16cbc
feat(skills): screen-onboarding 加玩法画面建档前先搜攻略
DoctorReid 4cca997
docs(game): 画面玩法机制建档(对标 ZZZ 三层结构)
DoctorReid 72c7c79
feat(sr_od/backend/mcp): instructions 补「配置生效」约束
DoctorReid 6d89707
docs: enter_game 补登录子态快照 + testing fixture-driven op 测试框架说明
DoctorReid c25d72b
docs(game): email/assignments 玩法补 fixture + 验证 + 测试
DoctorReid e4f5e6a
chore: .claude 整个不入库 + harness 入口文件降 2 层
DoctorReid c778bbd
docs(sr_od/backend): ApplicationListResult 说明 idx→目录映射防误判
DoctorReid 9a1b75b
docs(sr_od/backend/mcp): list_applications tool 描述补 idx→目录映射
DoctorReid bbf38b7
docs(sr_od/backend/mcp): config 工具 instance_idx 参数描述补 idx→目录
DoctorReid f6b3a9c
fix(sr_od/nameless_honor): 重做 tab 模板适配当前版本(3tab)
DoctorReid ca83603
feat(sr_od/echo_of_war): 历战余响建档 doc + 体力计划空 list 死循环修复
DoctorReid 54f28b7
fix(sr_od/screen_state): is_battle_fail 改查「大世界-战斗失败」screen
DoctorReid 978ba30
docs(sr_od/game): 画面/玩法建档内容更新 + 角色画面(character)建档
DoctorReid 4b15fcc
fix(sr_od): 修 trick_snack 卡死 — TalkInteract/BuyStoreItem 点击稳健性+售罄处理
DoctorReid eb83302
docs(sr_od/game): 对话画面 + 商店购买弹窗(售罄)建档
DoctorReid 691b6c1
fix(sr_od): GuideChooseMission 传送 click 防截图移鼠标 — 修 trailblaze_power/e…
DoctorReid 1e1b60e
fix(sr_od): BackToNormalWorldPlus 传 sim_uni_exit(is_in_x=False) 修 ope…
DoctorReid cae7b0a
docs(sr_od/game): 模拟宇宙 + 差分宇宙 画面/玩法/编排建档
DoctorReid 8a9dc76
fix(sr_od/mcp): start_sr_od_mcp_server 加锁防 TOCTOU 竞态(PR #605 CR review)
DoctorReid e82b08e
feat(sr_od/mcp): record_screen 录屏 tool + daemon 自重启
DoctorReid 9399d1b
feat(sr_od/currency_war): 策略决策核心(eval+贪心+硬门,纯逻辑可测)
DoctorReid f4fcae5
fix(sr_od/currency_war): 阵营 tiers/角色费用 用米游社百科 V4.4 权威数据修正
DoctorReid cd88ce7
fix(sr_od/currency_war): 应用策略 review r1 修复(44 条确认问题)
DoctorReid d6b68dc
feat(sr_od/currency_war): A1 蒙特卡洛 D 牌 + A3 阶段键控目标(review r2 架构)
DoctorReid 61f13b7
feat(sr_od/currency_war): review r5/r6 战术层修正 + 经济学校准
DoctorReid 44a821d
feat(sr_od/currency_war): 阶段2 战略层+观测反馈+决策迹采集(纯逻辑)
DoctorReid 7b14c21
fix(sr_od/currency_war): V4.4 数据校准(米游社实据)+ 机制表/COMP_LIBRARY 精修
DoctorReid fd40685
feat(sr_od/currency_war): A4 牌池概率模型 cw_shop_odds(米游社实据,纯逻辑)
DoctorReid 7b37ca9
feat(sr_od/currency_war): 战略↔战术接法第一步 evaluate 支持 target_comp
DoctorReid 9e6d419
feat(sr_od/currency_war): 角色领域模型 + V4.4 meta 重排(工程化 + 数据完善)
DoctorReid bec1291
feat(sr_od/currency_war): 装备/投资领域模型 + ENV_FACTION_MAP 派生(工程化)
DoctorReid ed6f573
docs(currency_war): 设计/数据文档迁入 docs/(版本化 + 代码注释引用稳定路径)
DoctorReid bf2d8b9
docs(currency_war): 决策日志规范(正文 what + decisions.md why 分开,试点)
DoctorReid 02d76e3
feat(currency_war): A2 战略↔战术接线 plan 调 select_comp 传 target 给 evaluate
DoctorReid f5d3fc5
fix(currency_war): BuyShopCards 非备战屏守卫,避免事件叠层 retry 浪费/卡顿
DoctorReid 4323a31
feat(currency_war): 阶段6 端到端验证通过 — app/ops/observation 运行代码入库
DoctorReid a79652e
fix(currency_war): bump 对局循环 MAX_ITER 500→2000(迭代预算耗尽非逻辑bug)
DoctorReid e9cc99f
feat(currency_war): shop op 透出 A2 target 到 telemetry/日志可观测
DoctorReid 0cacbbf
fix(currency_war): 修正结算前进按钮坐标 900,882→960,898(点空卡死)
DoctorReid 3b47063
feat(currency_war): A2 target 稳定性(task#16)— 防振荡 churn,跨回合持久化 target
DoctorReid 40d3afa
fix(currency_war): read_board 优先 'X/Y' 格式取 count,拒 tier 链裸数字(task#17)
DoctorReid eb86998
fix(currency_war): comp_score 提 W_PROG 降 W_STR —— select_comp 偏好可成型 c…
DoctorReid d809f9e
feat(currency_war): synergy 超线性奖励深堆(收敛,task#16 第一步)
DoctorReid 5d76d30
feat(currency_war): synergy off-target 打折(commitment,聚焦深化 target comp)
DoctorReid d87b2a6
revert(currency_war): OFF_TARGET_DISCOUNT 0.3→1.0(commitment regression)
DoctorReid 46f6ddb
fix(currency_war): 提 LEVEL_WEIGHT 3→6(鼓励升级,comp-strength 第一步)
DoctorReid 83c2175
fix(currency_war): 提 INTEREST_WEIGHT 2→4(economy fix,攒金升级)
DoctorReid 4bd9245
fix(currency_war): 遭遇 keyword 遭遇节点→遭遇(屏显不匹配 stall)
DoctorReid bf9fe52
fix(currency_war): 遭遇 handler 移到备战 check 前(event overlay 根因)
DoctorReid df9f681
fix(currency_war): 移除遭遇 handler(V4.4 遭遇=普通战斗非选择,handler 干扰 prep stall)
DoctorReid 52259f2
fix(currency_war): 出战双击(bug#1 吞第一次时第二次必落,解 prep-loop stall)
DoctorReid f86823d
fix(currency_war): 出战验证 transition(仍在备战→retry,防假成功 prep-loop)
DoctorReid f84455b
fix(currency_war): 出战 mouse_move+click(bug#1 根因修复 —— 先移后点,零移动不被判 drag)
DoctorReid adc8a2b
feat(currency_war): 选择伙伴 handler(stage 立绘选中+确认选择,解 recurring overlay …
DoctorReid 3a9df3d
fix(currency_war): shop plan 循环 read board 前 sleep 0.3s(task#17 timing)
DoctorReid 0dc5688
feat(currency_war): 列车同行 level_plan 曲线(task#18 第一步 —— economy 数据地基)
DoctorReid 74e7cea
feat(currency_war): plan 接 level_plan —— LevelUp bonus when level_pla…
DoctorReid 87cf269
feat(currency_war): level_plan spending gate(task#18 economy 核心修复)
DoctorReid d68ac45
fix(currency_war): 恢复遭遇选择 handler(遭遇其一+选择,df9f6810 误移除修正)
DoctorReid 839374b
fix(currency_war): 遭遇 handler 修正 —— 直接 click 选择(不点 tab)
DoctorReid 2f5a7b5
fix(currency_war): 遭遇 handler 双屏处理(选择屏 click 选择 / 详情屏 ESC 回选择)
DoctorReid ca67e86
fix(currency_war): 遭遇详情屏 blank click 关详情(ESC 无效,实测)
DoctorReid ee969bf
fix(currency_war): spending gate 通用曲线(lv6-7 level_up,覆盖无 level_plan 的…
DoctorReid cc02117
fix: import LevelGoal(spending gate 通用曲线用,runtime import)
DoctorReid 33eff28
style: ruff import order fix(LevelGoal)
DoctorReid d8db56f
fix(currency_war): 列车同行 lv6 roll→level_up(攒金升7,解 bot 花光金不升级)
DoctorReid ee7e57b
fix(currency_war): spending gate refresh too(防 D 牌泄金,task#18 续)
DoctorReid 19adb22
fix(currency_war): 遭遇选择 mouse_move+click(bug#1 mitigation,同出战 fix)
DoctorReid 0f5bf94
fix(currency_war): 遭遇选择 3-step handler(遭遇其一→blank→选择,实测确认)
DoctorReid dc511da
fix(currency_war): 结算 mouse_move+click(bug#1 fix,同出战/遭遇/选择伙伴 模式)
DoctorReid f375fe2
fix(currency_war): 未达上限 handler mouse_move+click(bug#1 fix —— round3 …
DoctorReid f74e9be
feat(currency_war): 选人事件策略接线(投资环境 decide_event)+ debug snap + 方法论沉淀
DoctorReid 7ecbec5
fix(currency_war): 选择伙伴/确认选择 收紧 LCS 0.7 防误派发到投资策略屏
DoctorReid f126e0b
feat(currency_war): 投资策略 3选1 接 decide_event(同投资环境模式)
DoctorReid f33c749
fix(currency_war): plane/round 读取过渡帧用 last-known-good 而非静默 fallback (…
DoctorReid 232b8d0
feat(currency_war): select_comp shop-aware 降权不可成型 comp(通关核心,task#25)
DoctorReid 1dcaf16
fix(currency_war): 修 round_by_ocr 中文关键词 LCS 误匹配(branch0 返回投资策略选择 + se…
DoctorReid 0c33fb3
docs(skill): 沉淀中文关键词 LCS 误匹配坑(gameplay-automation 阶段3)
DoctorReid f99742e
fix(currency_war): 3b 返回货币战争 LCS 误匹配(解锁事件派发)+ invest_strategy 点卡名选中
DoctorReid 2e92dc5
feat(currency_war): commitment prefilter — target 设定时跳过 off-target 散牌…
DoctorReid 36cd455
fix(currency_war): 1b 详情弹窗 ESC 也关角色详情(事件长尾)
DoctorReid 3678b68
fix(currency_war): 1b 角色详情 LCS 误匹配「角色」label(invest env 派发解锁)
DoctorReid 4ccefa0
fix(currency_war): invest_env 选中改点描述区 y450(立绘区开详情非选中)
DoctorReid f86d41c
docs(skill): 沉淀'预料之外画面→调研入口+建档'方法论(gameplay-automation 调试纪律)
DoctorReid 8f1fd0a
docs(skill): LCS 误匹配根因解=fixed-position screen_info area(用户方法论)
DoctorReid d660c21
feat(skills): skill-dev-guide 方法论重构 + dev skill 全量合规迁移
DoctorReid 76ca89f
feat(sr_od/currency_war): LevelUp 硬 gate(task#18)+ 投资策略描述区点击修
DoctorReid 8fb6042
docs(currency_war): 游戏数据/画面建档/立绘库 补全
DoctorReid c3fd423
fix(sr_od/backend): MCP server 日志 stdout UTF-8 输出
DoctorReid a8ffe7b
feat(sr_od/currency_war): 投资环境/投资策略 screen_info 建档 + 代码接 area_center(…
DoctorReid db61693
feat(sr_od/currency_war): 未达上限警告 screen_info 建档 + 接 area_center(task#20)
DoctorReid fd6f246
feat(sr_od/currency_war): 难度确认屏 screen_info 建档 + 接 area_center(task#20)
DoctorReid 941304f
docs(currency_war): 设计↔代码对账 —— 补 decisions.md 演进 + 追齐 strategy/ statu…
DoctorReid a6d34e5
docs(currency_war): 设计文档去具体权重值(单一源=代码,避免两边漂)
DoctorReid 098e4e6
feat(sr_od/currency_war): decide_encounter 纯逻辑骨架 + 4 测试(design 08,D-19)
DoctorReid 4e31988
feat(sr_od/currency_war): decide_supply 纯逻辑骨架 + 4 测试(design 07/08,D-20)
DoctorReid eb2b016
feat(sr_od/currency_war): optionality_score + alpha_t 纯函数(承诺-期权,D-21)
DoctorReid 2804217
feat(sr_od/currency_war): hp 阈值统一 config.hp_safe_threshold(D-22,D-18 落地)
DoctorReid 31178e2
feat(sr_od/currency_war): config 加 4 轴 steer 字段(forbid/build_around,R…
DoctorReid 957aeff
fix(sr_od/currency_war): EnterCurrencyWar wait_lobby 防御性加固(D-23)
DoctorReid 4ffbfd1
fix(sr_od/currency_war): level gate chicken-egg 修——落后期望等级也升(D-24)
DoctorReid 5ba0b47
fix(sr_od/currency_war): exit op 事件屏 escape(D-25)
DoctorReid ad6e2dc
feat(skills): 加 sr-od-dev-write-operation skill(写/改/调试单个 Operation)
DoctorReid 8f76cdb
refactor(skills): 迁 sr-od-dev skill-guide + screen-onboarding 到公共仓 On…
DoctorReid 0e94f4a
feat(sr_od/currency_war): app 中间态接手 state-aware resume(D-26)
DoctorReid 1603014
fix(sr_od/currency_war): RunLoop 事件 overlay 前置检测 + BuyShopCards 兜底(D-27)
DoctorReid 27faeaf
fix(sr_od/currency_war): 补给阶段 lcs 0.8(D-27 regression 修)
DoctorReid 97f8d5d
refactor(skills): 迁 sr-od-dev-gameplay-automation 到公共仓 od-dev-gamepla…
DoctorReid d5e0aea
fix(sr_od/currency_war): _saving_for_level 对齐 D-24 gate(落后期望也攒)(D-28)
DoctorReid 476fdea
refactor(skills): 迁 sr-od-dev-write-operation 到公共仓 od-dev-write-opera…
DoctorReid 5225810
refactor(skills): 迁 sr-od-dev-ui-region-detect 到公共仓 od-dev-ui-region-…
DoctorReid 0e9446b
docs+code: vision→视觉大模型 术语统一
DoctorReid 61c6b48
feat(sr_od/currency_war): difficulty → hp_safe_threshold 派生(D-32,向后兼容)
DoctorReid 6937c0b
fix(sr_od/currency_war): maybe_pivot 信号2 加已成型守卫(D-33)
DoctorReid 1776e79
docs(currency_war): strategy/03 同步 D-33 + 信号3 阈值统一(修 doc-code 漂移)
DoctorReid 928ae3f
feat(sr_od/currency_war): 策略插件机制 P1(CwStrategy ABC+Session+Manager,零行…
DoctorReid fa0e22f
fix(sr_od/currency_war): loop 0d「未达上限」LCS 误匹配「能量上限」→ 收紧 lcs 0.8(D-37)
DoctorReid b211e3b
feat(sr_od/currency_war): P1.5 观测回路 OCR 组件 —— 结算屏 hp_after 解析(D-38)
DoctorReid ab5f07d
fix(sr_od/currency_war): ↺ 修正 D-35 —— 遭遇节点有 3 难度选择 UI,re-activate dis…
DoctorReid 550d808
fix(sr_od/currency_war): maybe_pivot 信号3(保命)优先于 1/2,防低 HP target 振荡 c…
DoctorReid 0cc1874
fix(sr_od/currency_war): shop_supply shop presence 主导,board-only 降弱信号…
DoctorReid 408dc7f
refactor(sr_od/currency_war): 入口 op area 化 + 清理 bug#1 误判(D-42/D-43)
DoctorReid bf6d83d
feat(sr_od/currency_war): 简报词缀(debuff)识别+保存 → mechanics_fit 接线
DoctorReid a02809d
fix(sr_od/currency_war): HandleInvestEnv _read_options 漏卡名(NAME_CY 窄 …
DoctorReid 6f035c1
feat(sr_od/currency_war): 备战屏加 id_mark(备战标识-购买经验),让 is_precise
DoctorReid bd09a49
feat(sr_od/currency_war): 简报独立 op HandleBriefing + boss 识别链路 + 投资策略选中位置
DoctorReid 62358b1
feat(sr_od/currency_war): 采全 19 boss 战斗机制(数据银行图鉴) + D-45 修正 bug#1 认识
DoctorReid 1191e00
sr_od: bug#1 workaround 注释措辞校准(guide_choose_mission / buy_store_item)
DoctorReid 5f552e5
fix(sr_od/currency_war): 投资策略点卡名(y474)选中非卡底820(D-46,推翻I16)
DoctorReid 9d316f2
feat(sr_od/currency_war): 词缀效果采集+注册表py运行时自动写(D-47)
DoctorReid ce8b63f
feat(sr_od/currency_war): P1.5 观测回路接线 on_round_end(D-48)
DoctorReid 9cc1a5b
feat(sr_od/currency_war): mechanics_fit 数据对齐+补全(D-49,task#73)
DoctorReid e1279ab
fix(sr_od/currency_war): 0e 投资策略/环境 改 id_mark area(D-50,推翻 LCS)
DoctorReid 316362a
fix(sr_od/currency_war): 失败结算屏 hp=0 conf=1.0(D-51,P1.5 refine)
DoctorReid e0f0d0a
feat(sr_od/currency_war): P1.5 node_type 推断(首领→boss)(D-52)
DoctorReid 0065a20
docs(sr_od/currency_war): strategy/11 P1.5 落地状态(D-48~52)+ 弱阵 next
DoctorReid f5ec944
feat(sr_od/currency_war): comp early_power 早期战力先验(D-53,弱阵实验)
DoctorReid 4734bfc
fix(sr_od/currency_war): battle_loop 加 0f 消耗品详情浮层 ESC 关(D-54)
DoctorReid ae78915
feat(sr_od/currency_war): mechanics_fit 补 忍无可忍/沉重脚步 映射(D-55,task#73)
DoctorReid 224d765
feat(sr_od/currency_war): maybe_pivot 决策迹 log(D-56,弱阵诊断采数据)
DoctorReid 768ca74
fix(sr_od/currency_war): _in_match 大厅误判已在对局→空跑(D-57)
DoctorReid 5b5e713
fix(sr_od/currency_war): write_affix_effects docstring 模板更新(D-55 跟进)
DoctorReid 0bd65db
fix(sr_od/currency_war): 已选投资环境从不存 active_env→env_fit/T0硬绑失效(D-58)
DoctorReid 9c660c0
feat(sr_od/currency_war): maybe_pivot 倾向易成型 comp(D-59 弱阵)
DoctorReid f2fa5c8
fix(sr_od/currency_war): HandleSelectPartner 硬编码立绘坐标落候选间隙→flat-loop(D…
DoctorReid 6e70ef9
fix(sr_od/currency_war): choose_partner _read_candidates 加 x 过滤(D-60 补)
DoctorReid 325a1c6
docs(cw/strategy): 11 status 同步 弱阵+事件修(D-54~60)
DoctorReid 4374269
fix(sr_od/currency_war): choose_partner 验「已选择」+ 处理已选择态(D-61,ADR-0009)
DoctorReid 67d38c7
fix(sr_od/currency_war): 出战 click 前 mouse_move 缓解 bug#1(D-62)
DoctorReid bcdaa9b
docs(cw/strategy): 12 comp 成型深化设计(P2 通关 blocker)
DoctorReid faf21cf
feat(sr_od/currency_war): plan roll 找 target(D-63,P2/F2 comp 成型)
DoctorReid a40ee29
data(cw/affix): 运行时采 4 词缀效果原文(D-47 持续)
DoctorReid 4b1c0eb
fix(sr_od/currency_war): choose_partner confirm mouse_move+验overlay关(…
DoctorReid ba0f29d
docs(cw/decisions): D-64 choose_partner confirm mouse_move+验overlay关
DoctorReid 1dbac74
docs(cw/strategy): 12 status 同步 F2 实现验证/F3 wired/F1 待做
DoctorReid b1facce
fix(sr_od/currency_war): 信号3保命优先 board有progress 的 easy comp(D-65)
DoctorReid 895377a
feat(sr_od/currency_war): maybe_pivot commit 阈值(D-66,F1 comp 成型)
DoctorReid 8e0ff4f
fix(sr_od/currency_war): 经济统一论接线+saving_for_interest+bench空间检查(D-67)
DoctorReid d8e0502
feat(sr_od/currency_war): INVESTMENT_ENVS 全量+数据银行核对+删冗余 doc(D-68)
DoctorReid 04d3d64
feat(sr_od/currency_war): 备战字段采集 board tier(X/Y→count+next_tier,D-69)
DoctorReid 87dcb57
refactor(sr_od/currency_war): 拆分 cw_observation→core/briefing/settlem…
DoctorReid 7a5df37
feat(sr_od/currency_war): 备战字段采集 xp_progress(购买经验 X/Y,D-72)
DoctorReid 4ad26dd
feat(sr_od/currency_war): 备战字段采集 node_type + vision 修复脚本(D-73)
DoctorReid 69468d0
feat(sr_od/currency_war): 备战字段收尾(difficulty/level_cost/refresh_cost/s…
DoctorReid 8d9d979
docs(cw/prep): 备战 reader 清单全量(D-69~74 新 read)+ board 脆已治 + 前沿(icon/身份库)
DoctorReid 7b1aad3
feat(sr_od/currency_war): 角色立绘库 identity reader(脸库 SIFT 备战半身立绘,D-75)
DoctorReid 90fb488
feat(cw/equip): 装备图标库 CV 采集工具 + 35/125 初始图标(D-76)
DoctorReid c4f55de
feat(cw/equip): 装备图标库 79 件(简易8+进阶36+特权35)+ 工具 tier 感应(D-76 续)
DoctorReid 7805b64
feat(cw/equip): 装备图鉴全量采集(154件)+ 工具 op + 效果校验(D-76 续)
DoctorReid bcaee6c
feat(cw/equip): 装备注册表全量化(12→153)+ doc→code 生成器(D-70)
DoctorReid 8b39d51
feat(cw/equip): 装备合成配方提取工具(D-73)
DoctorReid 583f2c1
feat(cw/equip): 装备合成图谱 cw_synthesis(7基础件 K7 两两合成=28进阶,D-77)
DoctorReid 8432941
feat(cw/state): GameState 加法建模块 strategy/13 §13.2 补字段(D-78,零行为变化)
DoctorReid 5a93bce
fix(cw): 弱阵—commitment prefilter 不再豁免 priority 的 off-target(D-79,task…
DoctorReid 3661e29
refactor(cw/state): difficulty→selected_difficulty 职级 rename(strategy…
DoctorReid 37f5920
refactor(cw/state): bosses→plane_bosses rename(strategy/13 迁移块第二步,D-81)
DoctorReid 0c3a603
feat(cw/prep): 备战 3 op 补执行日志 + 部署验落地 + 删 #未验证 (D-82)
DoctorReid 23c9889
docs(cw/prep): 备战观测可靠性实图核实 (T#92)
DoctorReid 103bbd0
feat(cw/entry): 去 entry ops #未验证 + 补进度日志 (T#94, guardrail 解锁 live)
DoctorReid cef94ca
docs(cw/prep): 备战费用字段 OCR 不可行 ground truth (T#96 重新建档)
DoctorReid eddb0b0
docs(cw/prep): 备战画面重新建档 — 干净新画面 doc (T#96)
DoctorReid 50ca432
docs(cw): D-83 board_next_tier 不接线 — 静态 tiers=live ground truth(冗余)
DoctorReid df40e67
docs(cw/prep): live 建档补漏 — 惊喜盒 + 节点行 + node_type 根因
DoctorReid 037c5c3
docs(cw): D-84 char identity — SIFT 屏幕识别不可行(两源都不 match)→ bot tracking
DoctorReid cb3038d
feat(cw): D-84 char identity tracking — buy OCR 名持久化 seed state.bench
DoctorReid bde82d1
fix(cw/shop): gold=0 时重读几帧取 >0(paddle det 间歇漏 gold 数字,部分缓解)
DoctorReid 0d68635
fix(cw): read_gold 放大3x+收紧area — 解 gold 读0 blocker,bot 终能买(D-85)
DoctorReid 71f016f
chore(cw): regen _od_merged.yml(文本-金币数 area 收紧)
DoctorReid 06a307c
fix(cw): GameState.BENCH_CAPACITY → BENCH_CAPACITY 模块常量(bench 满时 Attr…
DoctorReid 5ef239b
feat(cw): T#97 round-based comp commitment(累计轮≥4 commit 防 spread-flit)
DoctorReid df7c957
feat(cw): T#97 step-2 target-faction buy bonus(synergy ×1.5 target,正向…
DoctorReid bde2837
fix(cw): T#97 step-2 target bonus 1.5→1.0 disabled(counterproductive:…
DoctorReid ab90e9c
feat(cw): T#97 step-2 tuned — target bonus tier-only(不×close-to-next,…
DoctorReid e440e49
fix(cw): parse_settlement_hp 容忍 OCR garble「命值」(on_round_end hp=0 根因)
DoctorReid 9db4c81
feat(cw): T#97 step-3 comp_viability 接线(tracker.is_losing_streak → 降 …
DoctorReid 9a7b0b0
fix(cw): T#98 HandleSelectPartner step2 请选择强化角色(两步 overlay flat-loop 根因)
DoctorReid 0fc0fbc
fix(cw): T#98 HandleSelectPartner step2 中心立绘 960,300(click-test 实锤,非 …
DoctorReid cf0663c
fix(cw): 事件 handler 全加出口验证(bug#1/多步 overlay flat-loop,partner reset 根…
DoctorReid 8781782
fix(cw): D-90 Refresh 门 —— shop 有买得起的 target 卡先买别刷掉
DoctorReid cbb92e0
feat(cw): D-91 决策接线 audit + 遭遇节点接入策略(read_encounter_options→decide_en…
DoctorReid 78d53d1
fix(cw): D-92 drought bail —— target 连续3轮 shop 无阵营卡则弃 target 重选
DoctorReid 04d704b
fix(cw): D-93 read_hp 重读兜底 —— 读到上限100(入口过渡帧HP区未渲染)重读2次取真值
DoctorReid 8391c4f
fix(cw): D-94 prep state.hp 用结算屏 HP(可靠)替 prep 帧 read_hp(持续误读)
DoctorReid e2fa71b
feat(cw): D-95 巨星节点接入策略(read_megastar_options → decide_megastar)
DoctorReid 579e702
fix(cw): D-96 巨星 step2「请选择强化角色」→ 再 confirm 跳过强化(两步 overlay,partner re…
DoctorReid 991f865
docs(cw): strategy/08 巨星接线状态 → ✅(D-95 read_megastar_options + D-96 两步…
DoctorReid 868f0dd
refactor(cw): 删 dead code HandleMegastar/HandleSupply(battle_loop 用 R…
DoctorReid 88ba971
fix(cw): D-97 巨星候选只点一次(flag 防 RunNode retry toggle 反选)—— 真根因
DoctorReid 488919a
fix(cw): D-98 target 不含盛会之星 时永远不买盛会之星 卡(防 megastar 节点卡死)
DoctorReid 76a695f
fix(cw): D-97b megastar 候选 session 级 flag + revert D-98(盛会之星 避开法无效且有害)
DoctorReid 63996b7
feat(cw): D-98 DeployBench 接入策略(读 plan DeployMove,按 to_row 部署)
DoctorReid 154cb8c
fix(cw): D-97c megastar session flag 重置(节点完成 _in_node=False 时清,下个节点可重…
DoctorReid 283e011
feat(cw): D-102 deploy 身份驱动(采CW立绘库71+read_bench_chars,修D-100 bench_id…
DoctorReid d055fbf
fix(cw): loop 加 0g 阿哈装备选择 overlay 分支(投资策略阿哈大悦,选装备自动关;plane1 1-3 卡此 66…
DoctorReid 069565a
fix(cw): 阿哈0g round_by_find_area(T#103 round_by_ocr→area 起)+ drought …
DoctorReid ab2809c
refactor(cw): T#103 round_by_ocr 全屏→area 化首批(复用现有 area + 按钮-收起)
DoctorReid File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| name: Test Check | ||
|
|
||
| on: | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] | ||
| push: | ||
| branches: [main] | ||
|
|
||
| jobs: | ||
| test-check: | ||
| runs-on: windows-latest | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| fetch-depth: 1 | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| persist-credentials: false | ||
|
|
||
| - name: Install uv | ||
| shell: pwsh | ||
| run: | | ||
| Invoke-WebRequest -Uri https://astral.sh/uv/install.ps1 | Invoke-Expression | ||
|
|
||
| - name: Create and activate virtual environment | ||
| shell: pwsh | ||
| run: | | ||
| uv venv .venv --python=3.11.12 | ||
|
|
||
| - name: Install dependencies | ||
| shell: pwsh | ||
| run: | | ||
| .\.venv\Scripts\Activate.ps1 | ||
| uv sync --group dev | ||
|
|
||
| - name: Checkout test repo | ||
| id: checkout-test-repo | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| repository: ${{ github.event_name == 'pull_request' && (github.event.pull_request.head.repo.full_name && format('{0}/sr-od-test', github.event.pull_request.head.repo.owner.login) || 'OneDragon-Anything/sr-od-test') || 'OneDragon-Anything/sr-od-test' }} | ||
| path: sr-od-test | ||
| ref: ${{ github.event_name == 'pull_request' && github.head_ref || 'main' }} | ||
| fetch-depth: 1 | ||
| persist-credentials: false | ||
| continue-on-error: true | ||
|
|
||
| - name: Checkout test repo (default branch) | ||
| id: checkout-test-repo-default | ||
| if: steps.checkout-test-repo.outcome == 'failure' | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| repository: OneDragon-Anything/sr-od-test | ||
| path: sr-od-test | ||
| ref: main | ||
| fetch-depth: 1 | ||
| persist-credentials: false | ||
|
|
||
| - name: Pre-download YOLO model (CI bypasses ghfast.top proxy; direct github) | ||
| shell: pwsh | ||
| run: | | ||
| # cal_pos/sim_uni 集成测试需 YOLO 模型;loader 默认走 ghfast.top 代理在 CI 会失败。 | ||
| # CI 直连 github release 预下载到 loader 期望的目录,check_model_exists 通过 → 不触发下载。 | ||
| $url = "https://github.com/OneDragon-Anything/OneDragon-YOLO/releases/download/sr_model/yolov8n-640-simuni-0601.zip" | ||
| $tmp = "$env:TEMP\yolo.zip" | ||
| Invoke-WebRequest -Uri $url -OutFile $tmp | ||
| foreach ($cat in @("world_patrol", "sim_uni")) { | ||
| $dst = "assets\models\$cat\yolov8n-640-simuni-0601" | ||
| New-Item -ItemType Directory -Force -Path $dst | Out-Null | ||
| Expand-Archive -Path $tmp -DestinationPath $dst -Force | ||
| } | ||
| Write-Host "YOLO model pre-downloaded to world_patrol + sim_uni" | ||
|
|
||
| - name: Run tests | ||
| shell: pwsh | ||
| run: | | ||
| chcp 65001 | ||
| $OutputEncoding = [System.Text.Encoding]::UTF8 | ||
| [Console]::InputEncoding = [System.Text.Encoding]::UTF8 | ||
| [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 | ||
| .\.venv\Scripts\Activate.ps1 | ||
|
|
||
| uv run pytest sr-od-test/ -v --tb=short --color=yes | ||
| env: | ||
| PYTHONIOENCODING: utf-8 | ||
|
|
||
|
|
||
| - name: Test failure notification | ||
| if: failure() | ||
| run: | | ||
| $message = @" | ||
| ::notice::当前触发事件: ${{ github.event_name }} | ||
| ::error::测试失败!请检查上方的测试结果并修复问题。 | ||
| ::notice::您可以fork测试仓库 https://github.com/OneDragon-Anything/sr-od-test 创建相同分支来修改测试代码 | ||
| ::notice::您可以使用以下命令在本地运行测试: uv run pytest sr-od-test/ -v | ||
| "@ | ||
| Write-Host $message | ||
| shell: pwsh | ||
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| # AGENTS.md | ||
|
|
||
| 本文件是项目级 AI 编码协作入口,只保留会直接影响实现落点与提交流程的约束。 | ||
| 详细规范与背景资料不要堆在这里,按需继续阅读: | ||
| - AI 编码 harness 工程方法论:[docs/develop/harness/README.md](docs/develop/harness/README.md) | ||
| - 上下文分层判据:[docs/develop/harness/context_layering.md](docs/develop/harness/context_layering.md) | ||
| - 入口文件维护规范:[docs/develop/harness/entry_files.md](docs/develop/harness/entry_files.md) | ||
| - AI 工具接入指引:[docs/develop/setup/ai_coding.md](docs/develop/setup/ai_coding.md) | ||
|
|
||
| ## 项目概述 | ||
|
|
||
| - 项目:星穹铁道一条龙(StarRail-OneDragon),面向 Windows 的崩坏星穹铁道自动化工具。 | ||
| - 语言与环境:Python 3.11、uv、PySide6。 | ||
| - 代码布局:`src-layout`,源码在 `src/`,运行时配置在 `config/`,资源在 `assets/`,开发文档在 `docs/develop/`。 | ||
| - 运行基准:1080p;配置以 YAML 为主。 | ||
| - 测试仓库独立维护:`sr-od-test/` 需要单独放在仓库根目录(已被 gitignore)。 | ||
|
|
||
| ## 常用命令 | ||
|
|
||
| ```shell | ||
| uv sync --group dev | ||
| uv run python src/sr_od/gui/sr_full_app.py | ||
| uv run pytest sr-od-test/ | ||
| uv run ruff check src/你修改的文件.py | ||
| uv run ruff check --fix src/你修改的文件.py | ||
| ``` | ||
|
|
||
| - 因 `pyproject.toml` 设 `[tool.uv] package = false`,运行前需确保 `PYTHONPATH=src`:PowerShell 执行 `$env:PYTHONPATH="src"`,或在项目根 `.env` 写入 `PYTHONPATH=src` 后改用 `uv run --env-file .env python src/sr_od/gui/sr_full_app.py`。 | ||
| - 也可以沿用 `debug.bat`(交互式调试入口,已设置好环境)。 | ||
| - 只对自己修改的文件运行 `ruff check`。 | ||
| - 不要对整个 `src/` 目录运行 ruff,现有仓库尚未全面适配。 | ||
| - 优先使用 Windows PowerShell 可直接执行的命令。 | ||
|
|
||
| ## 架构落点 | ||
|
|
||
| ### 1. 核心分层 | ||
|
|
||
| - `src/one_dragon/`:通用基础框架、配置、环境、工具、YOLO 能力。 | ||
| - `src/one_dragon_qt/`:通用 Qt GUI 框架与公共组件。 | ||
| - `src/onnxocr/`:OCR 引擎。 | ||
| - `src/sr_od/`:星穹铁道业务代码,包括 application、operation、context、gui 等。 | ||
|
|
||
| `one_dragon` / `one_dragon_qt` / `onnxocr` 是游戏无关的公共框架包(OneDragon 系列跨项目共享),星铁业务只在 `sr_od/`;公共框架的同步维护见 [common-package-sync.md](docs/develop/one_dragon/common-package-sync.md)。 | ||
|
|
||
| ### 2. 功能开发优先路径 | ||
|
|
||
| - **涉及游戏流程的改动先理解再动手**:新功能 / debug / 修 bug 碰到自动化与游戏交互、游戏机制时,先读相关代码 + `screen_info` 弄清「bot 当前走到哪个画面、按什么玩法逻辑走」,知识缺失或过期按 `od-dev-screen-onboarding` 等 skill 补档,别凭猜改(凭猜 → 只覆盖一种情况、漏另一种 → 回归)。纯代码改动(重构 / 性能 / UI / 基建)不适用。 | ||
| - 新功能优先评估是否应做成 `SrApplication`,放在 `src/sr_od/application/`,并通过 `ApplicationFactory` 接入(参考现有 `world_patrol`、`sim_universe`、`trailblaze_power` 等 `XxxAppFactory`)。 | ||
| - 不要直接把新流程硬塞进主线逻辑;先复用现有 Application、Operation、配置体系与界面组件。 | ||
| - 新的设置界面优先沿用现有 setting card、`YamlConfigAdapter`、`AdapterInitMixin` 等模式。 | ||
|
|
||
| ### 3. 关键运行机制 | ||
|
|
||
| - `SrContext`(继承 `OneDragonContext`)管理懒加载服务与配置;实例级配置变更要走 `reload_instance_config()`。 | ||
| - 操作链基于 `Operation` 编排;业务流程由 `SrApplication` 与各 `XxxAppFactory` 组装。 | ||
| - ONNX session 的异步调用必须通过 `one_dragon.utils.gpu_executor.submit`,不要并发直调多个 session。 | ||
|
|
||
| ## 开发硬约束 | ||
|
|
||
| - 所有函数签名、类成员变量都要有类型注解;使用 `list[str]`、`X | Y`。 | ||
| - 注释与 docstring 用中文,保持现有项目风格。 | ||
| - 禁止相对导入;仅类型注解使用 `TYPE_CHECKING` 导入。 | ||
| - `__init__.py` 默认不要暴露模块,除非已有明确模式或收到明确要求。 | ||
| - 构造函数显式声明参数,不要用 `**kwargs`。 | ||
| - 路径操作使用 `pathlib`,字符串格式化使用 f-string。 | ||
| - GUI 优先复用 `pyside6-fluent-widgets` 与现有项目组件,保持 Fluent Design。 | ||
| - 配置改动优先落到 YAML 与对应 `YamlConfig` 子类,不要随意散落硬编码配置。 | ||
| - 1080p 坐标属于项目既有前提,可以按现有模式硬编码,不要额外做分辨率适配设计。 | ||
| - 模型文件(`.onnx` 等)走运行时资源下载,`.gitignore` 已忽略 `models/`,勿 `git add` 模型文件。 | ||
|
|
||
| ## 文档与测试要求 | ||
|
|
||
| - 写文档 / skill / 注释 / 入口文件用直白表述,避免自造黑话或项目内部缩写(行业通用术语可用),首次出现的项目术语给定义 + 例子。 | ||
| - 修改代码后,同步更新对应的 `docs/develop/` 文档与 `sr-od-test/` 测试。 | ||
| - 提交前至少验证自己改动直接影响的部分(`ruff check` + 相关测试);若无法本地完成,要明确说明缺失前提。 | ||
| - 复杂功能、架构调整或新自动化流程,先补设计/说明文档,再继续实现。 | ||
|
|
||
| ## 提交流程与协作边界 | ||
|
|
||
| - 默认不要主动执行 `git commit`、`git push`、`git reset`、删分支等版本控制操作,除非用户明确要求。 | ||
| - 如果用户明确要求切换分支,先 `stash` 当前改动,再切换。 | ||
| - Review 关注逻辑错误、运行时崩溃、死循环、资源泄漏;不要为风格问题大改现有代码。 | ||
| - 提交 PR 后,review comment 需要逐条回复或修正。 | ||
|
|
||
| ## 自维护指南 | ||
|
|
||
| 修改 **AI 入口文件** `AGENTS.md`(团队共享 / 跨工具单一源,提交)时,必须先按 [entry_files.md](docs/develop/harness/entry_files.md) 的规范来:纯指令不掺杂元信息、只放 always-on 该留的(「删了会出错吗」逐条自检)、单一信息源(`AGENTS.md` 是源,工具入口 `@import` 引入)、共享文档改动先经用户确认。`.claude/CLAUDE.md` 是**个人本地**(`.claude/` 整个不入库,见 entry_files.md),个人随意改。 | ||
|
|
||
| ## Skills | ||
|
|
||
| 本项目开发类 skill(`sr-od-dev-*`)用公共仓的 **`od-dev-writing-skills`** 指导编写(方法论:4 硬规范 / writing-craft / testing)。 | ||
|
|
||
| - **保存**:根 `skills/<name>/`(提交)。 | ||
| - **命名**:`sr-od-dev-` 前缀(星铁专属命名空间,防撞名);使用类 `sr-od-`。 | ||
| - **挂载**:junction `skills/<name>` → `.claude/skills/<name>`(本地,`.claude/` 不入库)。 | ||
|
|
||
| `od-dev-writing-skills` 本身从公共仓 `OneDragon-Skills` 挂载进本仓 `.claude/skills/`(可通用 skill 沉淀到公共仓,SR 独有业务留本仓)。详 [docs/develop/setup/ai_coding.md](docs/develop/setup/ai_coding.md)。 | ||
|
|
||
| ## 深入阅读 | ||
|
|
||
| 只在当前任务确实需要时继续看这些文档: | ||
| - AI 编码 harness 工程:`docs/develop/harness/` | ||
| - 打包说明:`.github/dev.md` | ||
| - 业务模块架构:`docs/develop/one_dragon/`(按需补充) |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.