[{"data":1,"prerenderedAt":227},["ShallowReactive",2],{"page-/post/tech-news/opencode-v1-2-6":3,"surrounding-page":218},{"id":4,"title":5,"author":6,"body":7,"date":200,"description":201,"extension":202,"group":203,"lastmod":200,"meta":204,"navigation":206,"path":207,"rawbody":208,"seo":209,"showTitle":203,"stem":210,"tags":211,"versions":203,"__hash__":217},"content/post/tech-news/opencode-v1-2-6.md","opencode v1.2.6：少一次“无意义的 LLM 调用”，再加一把 GitLab 和 SQLite 的料","Jinx",{"type":8,"value":9,"toc":186},"minimark",[10,19,29,41,45,50,53,57,60,66,69,73,76,79,85,101,104,118,121,125,128,136,139,143,146,160,163,180,183],[11,12,13,14,18],"p",{},"今天中午翻了一眼 opencode 的 release notes，看到 ",[15,16,17],"strong",{},"v1.2.6","。",[11,20,21,22,25,26,18],{},"本以为又是那种“修修补补”，但里面有几条我挺喜欢的点：",[15,23,24],{},"少做无用功","、",[15,27,28],{},"关键链路更稳",[30,31,32],"blockquote",{},[11,33,34,35],{},"来源（Release Notes）：",[36,37,38],"a",{"href":38,"rel":39},"https://github.com/anomalyco/opencode/releases/tag/v1.2.6",[40],"nofollow",[42,43,44],"h2",{"id":44},"我挑出来的几个关键点",[46,47,49],"h3",{"id":48},"_1core新增-dfmtd-语言格式化器支持","1）Core：新增 dfmt（D 语言格式化器）支持",[11,51,52],{},"这条就很直接：如果你仓库里有 D 文件，格式化链路能跟上。\n我自己的项目基本不碰 D，但我喜欢这种“工具链愿意补齐边角”的态度。",[46,54,56],{"id":55},"_2coregitlab-provider-auth-升级支持会话中途-token-刷新","2）Core：GitLab provider / auth 升级，支持会话中途 token 刷新",[11,58,59],{},"这条是真会影响体验的。",[11,61,62,63,18],{},"很多工具在 GitLab 集成里，最烦的不是“配不起来”，而是",[15,64,65],{},"跑着跑着 token 过期了，然后一切静悄悄地挂掉",[11,67,68],{},"v1.2.6 说支持 session 期间 token refresh。\n我理解它是在补那种「你以为在工作，其实已经失联」的坑。（工具最怕这个）",[46,70,72],{"id":71},"_3core移除每条消息都生成标题的-llm-调用","3）Core：移除“每条消息都生成标题”的 LLM 调用",[11,74,75],{},"这条我给满分。",[11,77,78],{},"很多产品做着做着就会变成：每个交互都要“顺手问一下模型”。\n然后你就会得到：慢一点、贵一点、还不一定更好。",[11,80,81,82,18],{},"把不必要的 LLM 调用删掉，属于是",[15,83,84],{},"做正确的减法",[46,86,88,89,93,94,97,98],{"id":87},"_4tuiattach-新增-continue-fork","4）TUI：",[90,91,92],"code",{},"attach"," 新增 ",[90,95,96],{},"--continue"," / ",[90,99,100],{},"--fork",[11,102,103],{},"这两个 flag 的语义一眼就懂：",[105,106,107,113],"ul",{},[108,109,110,112],"li",{},[90,111,96],{},"：沿用之前的上下文继续跑",[108,114,115,117],{},[90,116,100],{},"：从某个上下文分叉出一个新分支",[11,119,120],{},"如果你平时在 TUI 里做“同一个任务的不同尝试”，这个改动会很顺手。",[46,122,124],{"id":123},"_5tui从-json-存储迁移到-sqlite带迁移命令","5）TUI：从 JSON 存储迁移到 SQLite（带迁移命令）",[11,126,127],{},"数据从 JSON → SQLite，通常意味着：",[105,129,130,133],{},[108,131,132],{},"读写更稳（尤其是并发/崩溃恢复）",[108,134,135],{},"查询更方便（后面想做检索、统计、列表都会舒服）",[11,137,138],{},"当然迁移这块我不敢脑补细节，建议你直接按 release notes 里的命令跑，并且先备份旧数据。",[42,140,142],{"id":141},"我会怎么升级偏保守但省心","我会怎么升级（偏保守但省心）",[11,144,145],{},"如果你满足下面任意一条，我会建议你关注/升级：",[105,147,148,151,157],{},[108,149,150],{},"你在用 GitLab 集成（最值回票价）",[108,152,153,154,156],{},"你重度用 TUI 的 ",[90,155,92],{}," 流程",[108,158,159],{},"你在意“能不能少做点无谓的 LLM 调用”",[11,161,162],{},"升级方式上，我会：",[164,165,166,169],"ol",{},[108,167,168],{},"先在非关键环境升级",[108,170,171,172],{},"重点回归两件事：\n",[105,173,174,177],{},[108,175,176],{},"GitLab 的认证链路（token 过期/刷新是否真的稳）",[108,178,179],{},"JSON → SQLite 的迁移是否能无痛完成（迁移前先备份）",[11,181,182],{},"就这样。",[11,184,185],{},"如果你也在用 opencode，欢迎把你踩到的坑丢我，我再补一版“升级注意事项”。",{"title":187,"searchDepth":188,"depth":188,"links":189},"",2,[190,199],{"id":44,"depth":188,"text":44,"children":191},[192,194,195,196,198],{"id":48,"depth":193,"text":49},3,{"id":55,"depth":193,"text":56},{"id":71,"depth":193,"text":72},{"id":87,"depth":193,"text":197},"4）TUI：attach 新增 --continue / --fork",{"id":123,"depth":193,"text":124},{"id":141,"depth":188,"text":142},"2026-02-20T04:00:00.000Z","opencode v1.2.6 的 release notes 里，有几条很“工程化”的改动：dfmt、GitLab token 刷新、TUI attach 新 flag、以及从 JSON 到 SQLite 的迁移命令。","md",null,{"category":205},"技术",true,"/post/tech-news/opencode-v1-2-6","---\ntitle: opencode v1.2.6：少一次“无意义的 LLM 调用”，再加一把 GitLab 和 SQLite 的料\ndescription: opencode v1.2.6 的 release notes 里，有几条很“工程化”的改动：dfmt、GitLab token 刷新、TUI attach 新 flag、以及从 JSON 到 SQLite 的迁移命令。\nauthor: Jinx\ndate: \"2026-02-20T12:00:00+08:00\"\nlastmod: \"2026-02-20T12:00:00+08:00\"\ntags: [\"opencode\", \"Release Notes\", \"GitLab\", \"TUI\", \"SQLite\"]\ncategory: 技术\n---\n\n今天中午翻了一眼 opencode 的 release notes，看到 **v1.2.6**。\n\n本以为又是那种“修修补补”，但里面有几条我挺喜欢的点：**少做无用功**、**关键链路更稳**。\n\n> 来源（Release Notes）：https://github.com/anomalyco/opencode/releases/tag/v1.2.6\n\n## 我挑出来的几个关键点\n\n### 1）Core：新增 dfmt（D 语言格式化器）支持\n\n这条就很直接：如果你仓库里有 D 文件，格式化链路能跟上。\n我自己的项目基本不碰 D，但我喜欢这种“工具链愿意补齐边角”的态度。\n\n### 2）Core：GitLab provider / auth 升级，支持会话中途 token 刷新\n\n这条是真会影响体验的。\n\n很多工具在 GitLab 集成里，最烦的不是“配不起来”，而是**跑着跑着 token 过期了，然后一切静悄悄地挂掉**。\n\nv1.2.6 说支持 session 期间 token refresh。\n我理解它是在补那种「你以为在工作，其实已经失联」的坑。（工具最怕这个）\n\n### 3）Core：移除“每条消息都生成标题”的 LLM 调用\n\n这条我给满分。\n\n很多产品做着做着就会变成：每个交互都要“顺手问一下模型”。\n然后你就会得到：慢一点、贵一点、还不一定更好。\n\n把不必要的 LLM 调用删掉，属于是**做正确的减法**。\n\n### 4）TUI：`attach` 新增 `--continue` / `--fork`\n\n这两个 flag 的语义一眼就懂：\n\n- `--continue`：沿用之前的上下文继续跑\n- `--fork`：从某个上下文分叉出一个新分支\n\n如果你平时在 TUI 里做“同一个任务的不同尝试”，这个改动会很顺手。\n\n### 5）TUI：从 JSON 存储迁移到 SQLite（带迁移命令）\n\n数据从 JSON → SQLite，通常意味着：\n\n- 读写更稳（尤其是并发/崩溃恢复）\n- 查询更方便（后面想做检索、统计、列表都会舒服）\n\n当然迁移这块我不敢脑补细节，建议你直接按 release notes 里的命令跑，并且先备份旧数据。\n\n## 我会怎么升级（偏保守但省心）\n\n如果你满足下面任意一条，我会建议你关注/升级：\n\n- 你在用 GitLab 集成（最值回票价）\n- 你重度用 TUI 的 `attach` 流程\n- 你在意“能不能少做点无谓的 LLM 调用”\n\n升级方式上，我会：\n\n1. 先在非关键环境升级\n2. 重点回归两件事：\n   - GitLab 的认证链路（token 过期/刷新是否真的稳）\n   - JSON → SQLite 的迁移是否能无痛完成（迁移前先备份）\n\n就这样。\n\n如果你也在用 opencode，欢迎把你踩到的坑丢我，我再补一版“升级注意事项”。\n",{"title":5,"description":201},"post/tech-news/opencode-v1-2-6",[212,213,214,215,216],"opencode","Release Notes","GitLab","TUI","SQLite","DtzSdU0JO57koCzFRPvjqfvbp3PM9dwb0et-eRn5r_s",[219,223],{"title":220,"path":221,"stem":222,"children":-1},"OpenClaw 安装入门（Windows）","/post/zzao/openclaw/openclaw-install-windows","post/zzao/openclaw/openclaw-install-windows",{"title":224,"path":225,"stem":226,"children":-1},"假设你是AI，你的Skill应该是什么样的","/post/zzao/ai-skill-structure","post/zzao/ai-skill-structure",1779005084793]