Skip to content

v0.2.1 — 無鑰匙圈環境不再卡對話框

Choose a tag to compare

@kiki830621 kiki830621 released this 26 Aug 07:29
· 49 commits to main since this release

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 不是關掉加密鑰。「要不要加密鑰」沒有選項;「密鑰從哪來」有兩個。給壞值一樣會拒絕。

⚠️ 密鑰不對等於既有記憶全體 orphan,而症狀是「turn 不見了」而不是「密鑰不對」——所以要匯出既有的那把,不是產一把新的。

為什麼不用 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