From cb292f9f539411619e4e3f577eb33f3d386a4789 Mon Sep 17 00:00:00 2001 From: snowy-yang <102860110+snowy-yang@users.noreply.github.com> Date: Sat, 19 Sep 2026 19:11:27 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=AA=8C=E6=94=B6=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E8=B7=9F=E4=B8=8A=20SQLite=20=E5=AD=98=E6=A1=A3=E2=80=94?= =?UTF-8?q?=E2=80=94=E9=A2=84=E7=BD=AE=E5=AD=98=E6=A1=A3=E6=94=B9=E5=A1=9E?= =?UTF-8?q?=E5=BA=93=E8=A1=8C=EF=BC=8C=E5=8A=A0=E4=BA=86=E5=88=AB=E5=8A=A8?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E7=AB=AF=E5=8F=A3=E7=9A=84=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skills/simplefarm-verify-and-ship/SKILL.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.workbuddy/skills/simplefarm-verify-and-ship/SKILL.md b/.workbuddy/skills/simplefarm-verify-and-ship/SKILL.md index d6aa07f..c9eb9d6 100644 --- a/.workbuddy/skills/simplefarm-verify-and-ship/SKILL.md +++ b/.workbuddy/skills/simplefarm-verify-and-ship/SKILL.md @@ -34,10 +34,13 @@ bench 里带调用计数器,计数变红说明轻量路径被改回重路径 `run_in_background: true` 跑前台服务器,验完再停掉。 ```bash -# 1) 预置存档:想验"买得起"的路径,就先塞一份有钱的档。 -# farm_id 直接映射到 /.json;字段缺失一律走默认值, -# 所以最小延迟 {version:2, state:{gold,level}} 就够。 -# 必须在同一条命令里 mkdir -p 好目录再写文件。 +# 1) 预置存档(SQLite,v2 起):想验"买得起"的路径,就先塞一行有钱的档。 +# python -c " +# from farm.models import GameState +# from farm.storage import save_state +# st = GameState(); st.gold = 5000; st.level = 5 +# save_state(st, '.e2e-saves/farm.db', 'boss')" +# 字段缺失一律走默认值;老 JSON 档也可以直接丢进 --save-dir,启动时自动迁移。 # 2) 起服务器(tick 小一点,3 秒一天) uv run main.py serve --port 8799 --tick 3 --save-dir .e2e-saves # 3) 用 RemoteFarm 驱动,跑完删掉脚本和 .e2e-saves/ @@ -49,6 +52,10 @@ uv run main.py serve --port 8799 --tick 3 --save-dir .e2e-saves `while True: client.snapshot()` 会永远读到同一份旧数据——服务器在推进, 看起来却像卡死。非实时客户端必须自己调 `client.refresh()` 再读 `snapshot()`。 TUI/网页走 SSE 所以没这个问题。 +- **端口上可能有别人的服务器。** 8765 是默认端口,用户自己(或另一个 checkout) + 起的实例可能正在上面跑、里面还有玩家进度。动手前先看 `/api/farms` 里有没有 + 不认识的活跃牧场;有就换端口验,**别 stop 它**。判断一个实例是不是本工作区 + 的代码,看它的存档目录在不在这个项目里(`saves/farm.db` 的 mtime 动不动)。 - **作物会缺水停长。** 天气随机消耗水分(晴 1 / 多云 0 / 干旱 2), 等成熟的循环里要盯水分补浇,否则 120 秒也等不到成熟。这也顺带证明了 天气→浇水这条链真的在起作用。