Repository navigation
v0.1.24 · 帮助顶部加直达目录 + 设置里加「检查更新」
帮助顶部加直达目录(吸顶,滚多远都能跳)
下载:页面下面的 Assets 里那个 RapaceGo.zip(约 146 MB)。
展开看这一版改了什么
v0.1.24:帮助顶部加直达目录(吸顶,滚多远都能跳)
您要的功能
「软件内的帮助要有顶部列出的直达按钮,直接拉到对应位置,方便快速查询」
—— 做了,而且比"跳一次"更顺手一点:
① 六个直达按钮:第一次使用 · 界面分区 · 主要功能 · 四种规则 · 快捷键 · 数据怎么看
② 按钮排做成了吸顶(sticky):往下翻到任何位置,这排按钮都还在头顶——
不用先滚回最上面才能跳去别的小节。这才是"便于查询"的关键。
③ 当前在哪一节会自动高亮:翻到"快捷键"那一节,目录里"快捷键"就变实心高亮,
一眼知道自己读到哪、还剩哪些没看。
④ 每次打开帮助都回到最上面,不会留着上次翻到一半的位置。
实现里踩到的两个坑(都记在代码注释里了)
坑一:CSS 的 scroll-behavior: smooth 会和"先归零再测量"打架。
它让每一次 scrollTop 赋值都变成动画 —— 于是"把滚动归零、再量目标元素的绝对位置"
这套算法失效:赋值后立刻量,量到的还是动画中途的值(实测设了 0、读到 72),跳转位置全错。
去掉 CSS 的平滑滚动,改成自己在 JS 里用 rAF 做 —— 该瞬时就瞬时、该平滑才平滑。
坑二:在布局不稳定的时候量位置。
弹窗关闭时是 display:none(里面所有元素位置都是 0);
刚打开时还在做出现动画(量出来会偏)。两次都栽在同一个病上。
现在改成:只在弹窗稳定显示后量一次、缓存起来,之后所有跳转都用缓存值,
不再依赖任何实时测量。
验证(真机,15 条断言全过)
点「第一次使用」→ 落在顶部 44px ✓
点「界面分区」 → 落在顶部 44px ✓
点「主要功能」 → 落在顶部 44px ✓
点「四种规则」 → 落在顶部 44px ✓
点「快捷键」 → 落在顶部 44px ✓
点「数据怎么看」→ 落在顶部 44px ✓
滚动时高亮跟随当前小节 ✓
每次重开回到第一节 ✓
(44px 是给吸顶目录让出的高度 —— 标题不会被按钮压住半行。)
v0.1.23:新增「检查更新」+ 修「分析讲解」讲错了对象
一、设置里新增「关于与更新」
您要的三件事都齐了:
| 位置 | 作用 |
|---|---|
| 当前版本 | 显示你在用的是哪一版(本地读,不发请求) |
| 检查更新 | 点一下问 GitHub 最新版是多少,和本机比 —— 结果如实说:已是最新 / 有新版本 / 检查失败 |
| 去下载页 | 用系统浏览器打开 GitHub 上最新版的发布页(永远指向最新,不用改代码) |
故意定的两条规矩:
- 检查失败时绝不谎报"已是最新" —— 连不上就明说连不上。
- 「去下载页」不依赖检查成功 —— 网络被挡时用户照样能手动去下。
二、修「分析讲解」讲错了对象(真 bug)
您实测撞到的:自己第 83 手亏 0.1%,讲解却整段在讲 AI 想下的 D8。
根因:代码里把 AI 推荐的那个点传给了 LoGos,而不是您实际下的那一手。
于是「分析讲解」输出的其实是"如果下在 AI 推荐点会怎样" —— 答非所问。
(「全盘讲解」里是同一个错,一起修了。)
用您那份 83 手棋谱实测(实际下的是 S12,AI 想的是 D8):
改之前:如果黑棋下在 D8,…… ← 讲的是另一个点
改之后:这一手 S12(黑棋第 83 手)下出来,…… ← 讲的是您下的那一手
顺带改了 prompt:明确要求它先说这一手之后会发生什么
(碰到了哪些棋子、切断了什么、多了少了气、对方最可能的应手),
而不是只讲"该下在哪"。顶部提示也写清了「AI 想下的是 X;实际下的是 Y」。
三、修一个我自己造成的隐患:测试不再碰真棋谱
承认一个失误:测试要拿真实棋谱当夹具,我往 records\ 里拷文件、跑完删掉 ——
有一次清理写宽了,把用户自己下的一盘棋和一份职业棋谱一起删了(后来从回收站和备份里捞回来了)。
根因是"测试和用户数据共用一个目录",所以从两头堵死:
- 程序支持
RAPACEGO_RECORDS环境变量,可把棋谱库强制指到别处
(★ 只在用户自己没在设置里指定过时生效,不抢用户的设置) - 测试脚本
_rtest.py默认就用<项目>\_trash\records_test\,
测试实例从此读写全在临时目录,怎么折腾都伤不到真棋谱
四、新增一条纪律检查:除了检查更新,任何地方都不出网
按您的说法「本软件无需联网,只有检查更新用网」,把它做成了可执行的检查
(dev/_lint_net.mjs)—— 以后谁(包括我)顺手加个联网调用,一跑就会被拦住。
当前审计结果:
| 出网点 | 判定 |
|---|---|
跟 LoGos 说话(127.0.0.1 的 /health、/completion) |
✓ 本机回环,不出网卡 |
检查更新(api.github.com / github.com) |
✓ 白名单,且只在你点按钮时发 |
| 其他 | 零 |
| 偷偷引的联网库(axios/got/node-fetch…) | 零 |
顺带澄清一处:KataGo 自带的配置文件里满是
# https://…—— 那是注释里的文档链接,
不是请求。lint 里专门做了注释过滤,免得自己被自己骗。