Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e4563e861 |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "claude-pet",
|
||||
"version": "2.0.8",
|
||||
"version": "2.0.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "claude-pet",
|
||||
"version": "2.0.8",
|
||||
"version": "2.0.9",
|
||||
"devDependencies": {
|
||||
"electron": "^43.4.1",
|
||||
"electron-builder": "^26.0.12"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "claude-pet",
|
||||
"version": "2.0.8",
|
||||
"version": "2.0.9",
|
||||
"description": "Codex Pets 相容的 Claude Code 桌面寵物(spriteVersionNumber 2:9 個動作列 + 16 方向追視)",
|
||||
"main": "main.js",
|
||||
"private": true,
|
||||
|
||||
+10
-1
@@ -409,6 +409,9 @@ function handleEvent(p) {
|
||||
break;
|
||||
case "UserPromptSubmit":
|
||||
setState(s, "running");
|
||||
// 這時 transcript 裡最新的助理訊息還是上一輪的結尾,
|
||||
// 先標記成已顯示,免得接下來的工具事件把它當成新話講出來
|
||||
if (p.narrationId) lastNarrationId = p.narrationId;
|
||||
hideBubble();
|
||||
break;
|
||||
case "PreToolUse":
|
||||
@@ -456,7 +459,13 @@ function handleEvent(p) {
|
||||
// Codex:turn 完成且未讀 → review(播 review 3 次後沉澱),直到使用者回到該 thread 才回 idle。
|
||||
// 這裡對應成:維持 review 直到該 session 有下一個動作(UserPromptSubmit)、結束或 7 天到期。
|
||||
setState(s, "review");
|
||||
say("✅ 完成!", 8000, false, title);
|
||||
// 收尾時把最後一句回覆講出來,而不是只說「完成」
|
||||
if (p.narration) {
|
||||
lastNarrationId = p.narrationId || lastNarrationId;
|
||||
say(`✅ ${firstSentence(p.narration)}`, 8000, false, title);
|
||||
} else {
|
||||
say("✅ 完成!", 8000, false, title);
|
||||
}
|
||||
break;
|
||||
case "StopFailure":
|
||||
// Codex:turn 失敗 → failed 狀態(播 failed 3 次後沉澱),維持到下一個 turn 或 1 小時到期
|
||||
|
||||
+2
-1
@@ -144,8 +144,9 @@ async function main() {
|
||||
console.log(`Tag : ${TAG}`);
|
||||
|
||||
if (!fs.existsSync(DIST_DIR)) throw new Error(`找不到 ${DIST_DIR},先執行 npm run dist`);
|
||||
// dist/ 可能留著前幾版的產物,只挑檔名含當前版本的,免得舊檔混進新 release
|
||||
const files = fs.readdirSync(DIST_DIR)
|
||||
.filter((f) => ASSET_PATTERNS.some((re) => re.test(f)))
|
||||
.filter((f) => ASSET_PATTERNS.some((re) => re.test(f)) && f.includes(pkg.version))
|
||||
.map((f) => path.join(DIST_DIR, f))
|
||||
.filter((f) => fs.statSync(f).isFile());
|
||||
if (!files.length) throw new Error(`${DIST_DIR} 裡沒有 .exe / .zip,先執行 npm run dist`);
|
||||
|
||||
Reference in New Issue
Block a user