布解讀:Git 提交 SSH 簽名、Agent 采樣參數(shù)與全端體驗修復(fù))
AI Agent人工智能代碼智能體交互助手【免費下載鏈接】openchamberAgentic Development Environment based on OpenCode AI agent項目地址https://gitcode.com/gh_mirrors/op/openchamber點擊查看免費下載本篇文章圍繞 OpenChamber 1.13.3 版本發(fā)布日期2026-06-24的變更清單展開核心主題是 Git 身份支持使用 SSH 密鑰簽署提交、Agent 設(shè)置新增 thinking variant / temperature / top-p 采樣控制以及應(yīng)用端與 VS Code 擴展端共享的一批聊天、會話、設(shè)置與移動端體驗修復(fù)。閱讀本文后你將理解 SSH 提交簽名在倉庫中的底層配置實現(xiàn)掌握 Agent 采樣參數(shù)的作用與清除覆蓋的行為并能對照源碼定位每一項修復(fù)背后的改動位置。版本概覽OpenChamber 是基于 OpenCode AI agent 的 Agentic 開發(fā)環(huán)境。1.13.3 是一個以 Git 提交簽名與 Agent 采樣控制為核心的功能型版本同時修復(fù)了大量影響日常使用的細(xì)節(jié)問題。本次變更同時落在兩個端上App桌面 / Web 應(yīng)用涵蓋 Git、Agent、Settings、Sessions、Chat、Providers、Usage、Files、Startup、CLI、Mobile 等模塊VS Code 擴展與 App 共享了 Agent 采樣參數(shù)、字體與內(nèi)邊距設(shè)置以及大部分聊天與會話修復(fù)。從變更內(nèi)容看1.13.3 的核心工程重點有三個其一把 SSH 提交簽名正式接入 Git 身份流程其二讓 Agent 的推理與采樣參數(shù)thinking variant、temperature、top-p在設(shè)置中可配置、可清除其三集中修復(fù)會話切換、代碼塊渲染、移動端布局等高頻體驗問題。Git 身份支持 SSH 提交簽名功能說明1.13.3 中Git identity can sign your commits with SSH——一個 Git 身份identity現(xiàn)在可以使用 SSH 密鑰對提交進(jìn)行簽名。這是對原有 Git 身份管理能力的擴展此前身份主要解決我是誰user.name / user.email與如何認(rèn)證遠(yuǎn)程SSH 私鑰路徑的問題現(xiàn)在進(jìn)一步解決如何證明提交出自我手的簽名問題。源碼級實現(xiàn)服務(wù)端在 packages/web/server/lib/git/service.js 的setLocalIdentity函數(shù)中實現(xiàn)了完整邏輯其簽名寫入分為三步await git.addConfig(gpg.format, ssh, false, local); await git.addConfig(user.signingkey, profile.signingKey.trim(), false, local); await git.addConfig(commit.gpgsign, true, false, local);對應(yīng)關(guān)系如下Git 配置項寫入值作用gpg.formatssh聲明使用 SSH 簽名格式而非默認(rèn)的 gpguser.signingkey身份中填寫的 signingKey指向用于簽名的 SSH 公鑰commit.gpgsigntrue讓git commit默認(rèn)對提交簽名可以看到簽名開關(guān)并非無條件生效源碼中顯式校驗profile.signCommits true且signingKey是非空字符串二者同時滿足才寫入上述三項配置。這保證了用戶在設(shè)置中未顯式開啟簽名時不會意外改變倉庫的簽名行為。VS Code 擴展側(cè)保留了同構(gòu)實現(xiàn)見 packages/vscode/src/gitService.ts 中的setGitIdentity函數(shù)const shouldSignCommits signCommits true typeof signingKey string signingKey.trim().length 0; // ... if (shouldSignCommits) { await repo.setConfig(gpg.format, ssh); await repo.setConfig(user.signingkey, signingKey.trim()); await repo.setConfig(commit.gpgsign, true); }函數(shù)簽名也同步擴展export async function setGitIdentity( directory: string, userName: string, userEmail: string, sshKey?: string | null, signCommits?: boolean | null, signingKey?: string | null ): Promise{ success: boolean }其中sshKey可選用于構(gòu)建core.sshCommand完成遠(yuǎn)程認(rèn)證signingKey用于提交簽名兩者是不同職責(zé)的密鑰配置均可選。與 SSH 認(rèn)證配置的關(guān)系需要區(qū)分兩組易混淆的配置遠(yuǎn)程認(rèn)證core.sshCommand。當(dāng)身份中提供了sshKey時服務(wù)端會通過buildSshCommand(profile.sshKey)生成ssh -i path -o IdentitiesOnlyyes并寫入core.sshCommand本地級。escapeSshKeyPath會先對路徑做平臺歸一化Windows 反斜杠轉(zhuǎn)正斜杠C:/轉(zhuǎn)/c/MSYS 風(fēng)格并拒絕包含$!;|(){}[]*?#~等危險字符的路徑防止命令注入見 packages/web/server/lib/git/service.js。提交簽名gpg.format/user.signingkey/commit.gpgsign。與認(rèn)證無關(guān)只決定git commit是否攜帶 SSH 簽名。兩者是正交的用戶可以不提供sshKey例如用 token 認(rèn)證遠(yuǎn)程但仍開啟 SSH 提交簽名。注意設(shè)置身份時若authType ssh會寫入core.sshCommand并清除credential.helper若authType token則相反二者只會保留其一。使用建議在 OpenChamber 的 Git 身份設(shè)置中搜索關(guān)鍵詞包括identity、commit signing、ssh signing、gpg見 packages/ui/src/lib/settings/search.ts為身份填寫signingKeySSH 公鑰路徑通常為~/.ssh/id_ed25519.pub并開啟簽名開關(guān)首次簽名提交時ssh-agent會請求確認(rèn)私鑰OpenChamber 也會在.gnupg/S.gpg-agent.ssh與gpgconf --list-dirs agent-ssh-socket間探測 SSH agent socket見 packages/vscode/src/gitService.ts確認(rèn)后即可用git log --show-signature驗證簽名簽名身份寫入的是local級配置僅影響當(dāng)前倉庫不會污染全局 Git 配置。Agent 設(shè)置thinking variant、temperature 與 top-p新增采樣與推理控制1.13.3 為 Agent 設(shè)置新增了三項控制App 與 VS Code 擴展端同步提供社區(qū)貢獻(xiàn)bashrusakhthinking variant選擇模型推理/思考變體設(shè)置搜索關(guān)鍵詞為thinking、reasoning、varianttemperature控制輸出隨機性/創(chuàng)造性搜索關(guān)鍵詞為randomness、creativetop-p核采樣nucleus sampling閾值搜索關(guān)鍵詞為sampling、nucleus。這三項在設(shè)置注冊表中均有獨立條目見 packages/ui/src/lib/settings/search.ts{ id: agents.variant, page: agents, keywords: [thinking, reasoning, variant, depth] }, { id: agents.temperature, page: agents, keywords: [randomness, creative] }, { id: agents.top-p, page: agents, keywords: [sampling, nucleus] },它們在 UI 上歸屬于agents設(shè)置頁settings.agents.page.field.*系列標(biāo)題與 tooltip 文案與agents.model覆蓋模型、agents.system-prompt、agents.steps、agents.permissions等并列。清除覆蓋的行為1.13.3 同時改進(jìn)了覆蓋override的清理邏輯clearing temperature or top-p removes the override。即當(dāng)用戶在設(shè)置中把 temperature 或 top-p 清空回到未設(shè)置狀態(tài)時OpenChamber 會真正移除該 agent 的采樣覆蓋而不是保留一個空值繼續(xù)生效。這一行為同樣由 bashrusakh 貢獻(xiàn)App 與 VS Code 擴展端一致。這一點對實際使用很重要默認(rèn)情況下模型會使用其自身的采樣參數(shù)只有當(dāng)用戶顯式設(shè)置 temperature / top-p 時才會覆蓋模型默認(rèn)值。清空輸入框即等于撤銷覆蓋、恢復(fù)模型默認(rèn)避免出現(xiàn)設(shè)置了 0 卻仍然隨機或空值被意外當(dāng)作合法參數(shù)下發(fā)的歧義。本次版本其他值得關(guān)注的改進(jìn)與修復(fù)Git推送前先同步pushing from the Git view syncs first——從 Git 視圖發(fā)起推送時OpenChamber 會先執(zhí)行同步fetch/merge 等再推送顯著減少推送因遠(yuǎn)端領(lǐng)先而被拒絕rejected的情況。對于多設(shè)備協(xié)作或多人共用的倉庫這能明顯降低手工 rebase 的頻率。設(shè)置與字體字體與內(nèi)邊距應(yīng)用到 VS Code 擴展此前在 App 側(cè)配置的字體大小與內(nèi)邊距不會反映到 VS Code 擴展的界面1.13.3 修復(fù)了這一不一致Sin991114。App 與擴展現(xiàn)在共享同一套排版偏好。聊天Chat修復(fù)Slash 菜單選擇自己的技能從/菜單中選取自己的 skill 時現(xiàn)在會直接運行該技能而不再是把技能名當(dāng)作普通文本插入消息IbrahimKhan12代碼塊保留特殊字符自己消息中的代碼塊現(xiàn)在會保留、-等字符不再被錯誤轉(zhuǎn)義或丟失bashrusakhArrow Up 恢復(fù)歷史當(dāng)光標(biāo)位于輸入框最開頭時按 Arrow Up重新能夠呼出提示歷史prompt history粘貼不再觸發(fā)文件提及粘貼包含的文本時不再誤彈出文件 -mention 面板charpeni會話切換不再跳動切換會話或加載更早消息時對話不再向后回跳或抖動herjarsa這通常源于消息列表未正確錨定到滾動位置。會話Sessions新會話跟隨所選項目/文件夾新建會話時會話歸屬保持為你選擇的項目或文件夾不再漂移到默認(rèn)位置bashrusakh固定項在空列表中保留當(dāng)會話列表返回為空時側(cè)邊欄中已固定的會話與文件夾仍然顯示避免用戶丟失固定入口bashrusakh。設(shè)置與模型模型可見性持久化per-model 可見性與同級模型sibling model選擇在重啟后保持已保存狀態(tài)attilaszasz技能目錄重新加載修改 catalog 設(shè)置后技能目錄skills catalog會立即重新加載無需重啟gokulkgm。其他模塊Providers從設(shè)置中斷開 provider 現(xiàn)在真正生效UsageMiniMax M3 與 Token Plan 的用量統(tǒng)計恢復(fù)讀取 provider 的當(dāng)前響應(yīng)baruchvitorino修復(fù)了用量面板顯示滯后或丟失的問題Files下載文件名含非拉丁字符如中文、日文、韓文時保持原始文件名不再亂碼或被截斷FanFan4204Startup上次崩潰遺留的 managed OpenCode 進(jìn)程會在下次啟動時被清理防止僵尸進(jìn)程占用端口或資源CLI遺留的服務(wù)器 PID 文件不再讓 CLI 誤把無關(guān)進(jìn)程當(dāng)作 OpenChamber 實例處理避免誤殺或錯誤接管Mobile子代理subagent展開箭頭不再覆蓋過長的會話標(biāo)題weixiang1862、lilyzhaun會話按精確文件夾分組而不是模糊的路徑前綴weixiang1862、lilyzhaun。版本清單與升級建議1.13.3 的完整變更清單保存在倉庫 changelog/1.13.3.md更早版本見 changelog 目錄1.0.1 至 2.0.0 均有對應(yīng)文件跨版本總覽見 CHANGELOG.md。對于正在使用 OpenChamber 的開發(fā)者本版本值得立即更新的理由如果你的團隊要求提交簽名如開源合規(guī)或供應(yīng)鏈安全要求1.13.3 讓你在 OpenChamber 界面內(nèi)直接配置 SSH 提交簽名不必再手工改.git/config如果你需要精細(xì)控制 Agent 的輸出風(fēng)格例如讓編碼 agent 更保守、讓寫作 agent 更發(fā)散新增的 temperature / top-p / thinking variant 覆蓋非常實用一系列會話與聊天體驗修復(fù)不跳屏、技能直接運行、粘貼不彈面板會直接影響每天的高頻操作。升級后建議重點驗證Git 身份簽名配置是否正確寫入可git config --local --list查看gpg.format、user.signingkey、commit.gpgsign在 agent 設(shè)置中清空 temperature / top-p 后確認(rèn)覆蓋被移除移動端子代理列表與文件夾分組是否符合預(yù)期。贊分享AI Agent人工智能代碼智能體交互助手【免費下載鏈接】openchamberAgentic Development Environment based on OpenCode AI agent項目地址https://gitcode.com/gh_mirrors/op/openchamber點擊查看免費下載相關(guān)推薦GoReleaser v2.11 發(fā)布解讀Homebrew Cask 增強、Git 提交簽名與 Pro 新特性GoReleaser v2.11 發(fā)布解讀Homebrew Cask 增強、Git 提交簽名與 Pro 新特性 GoReleaser v2.11 是繼 v2.開發(fā)工具CI/CD構(gòu)建工具kornia RandomRain 采樣語義修復(fù)閉整數(shù)區(qū)間均勻采樣與構(gòu)造期參數(shù)校驗全解析kornia RandomRain 采樣語義修復(fù)閉整數(shù)區(qū)間均勻采樣與構(gòu)造期參數(shù)校驗全解析 導(dǎo)讀 本文圍繞 kornia 倉庫變更記錄 changelog.d/計算機視覺深度學(xué)習(xí)人工智能圖像處理Git verify-commit提交簽名的驗證機制Git verify commit提交簽名的驗證機制 1. 為什么需要提交簽名驗證 在多人協(xié)作的Git倉庫中你是否曾遇到以下問題 無法確認(rèn)某次提交是否真版本控制開發(fā)工具CLI上一篇QuPath終極指南免費開源數(shù)字病理圖像分析從入門到精通下一篇5分鐘掌握RVC語音轉(zhuǎn)換免費開源AI變聲終極指南創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考