v0.2.1 — 無鑰匙圈環境不再卡對話框
v0.2.0 的 binary 缺一個修正,這一版補上。 不覆蓋 v0.2.0 的 asset:它已經公開過,靜默換掉會讓「我裝的是哪一版」失去答案。
沒有登入鑰匙圈時,它現在會說話
ltm 用 macOS Keychain 存 anchor 密鑰。在沒有登入鑰匙圈的環境(SSH 進來、launchd/cron、CI、或以另一個 HOME 執行),舊版檔案式 keychain 不會回錯誤——它彈一個 modal 並停在那裡等人點。SecItemAdd 最終回的 -60006 逐字是 "The authorization was canceled by the user",也就是那條路真的走到底了。
現在它在碰 Keychain 之前就判斷,並指名補救:
✗ 這個環境沒有可用的登入鑰匙圈(找過 …/Library/Keychains)。
常見於:SSH 進來、launchd/cron、CI、或以另一個 HOME 執行。
anchor 密鑰改從環境變數給:
export LTM_ANCHOR_KEY=$(ltm memory --export-key)
LTM_ANCHOR_KEY 不是關掉加密鑰。「要不要加密鑰」沒有選項;「密鑰從哪來」有兩個。給壞值一樣會拒絕。
為什麼不用 data-protection keychain
那一層沒有登入鑰匙圈的概念,本來是對的解。實測它要 keychain-access-groups entitlement,而那需要嵌 provisioning profile——Developer ID 的 CLI 發布做不到:
| 簽法 | SecItemAdd with kSecUseDataProtectionKeychain |
|---|---|
| ad-hoc | -34018 errSecMissingEntitlement |
| Developer ID,無 entitlement | -34018 |
| Developer ID + entitlement,無 profile | 行程被 SIGKILL |
安裝
claude plugin marketplace add PsychQuant/claude-LTM
claude plugin install claude-ltm@claude-ltm然後跟模型說「設定一下 ltm」(ltm-setup skill 會報你的語料規模與預估成本再問),或自己跑 ltm build。
Developer ID 簽章 + notarized。
完整變更見 CHANGELOG.md。