氣泡改成兩行,第一行顯示對話名稱或專案名
摘要: 氣泡上方加一行標題(/rename 設的對話名稱,沒設就用專案資料夾名),訊息移到第二行。 根本原因: 原本把專案名以「(專案名)」的形式接在訊息尾巴,訊息本身就短, 加了括號後更容易被氣泡的單行省略號截掉,而且同時開多個 session 時 要看到最後才知道是哪一個在叫你。 影響: 多 session 並行時不容易分辨氣泡是哪個專案發出的;訊息也被括號擠掉。 修法: - index.html 氣泡內加 #bubble-title;style.css 把單行限制從 #bubble 移到 #bubble-title 與 #bubble-text 各自身上,兩行各自省略, 並以 :empty 讓沒有標題時整行收起來,不留空白。 - say() 增加第四個參數 title,事件處理處的八個呼叫點改傳標題、移除 suffix。 - main.js 的 latestNarration 改名為 readTranscript,同一次反向掃描同時取出 助理說明與 custom-title(/rename 會把它寫進 transcript),兩者都拿到就提早結束; 收到事件時把 sessionTitle 一併併進 payload。 - 標題優先序:對話名稱 > 專案資料夾名 > 不顯示。 驗證: - 單元測試以真實 transcript 執行 readTranscript:取到對話名稱 "claude-pet"、 同時取到助理說明、快取一致、路徑不存在或為 null 時回 null,6 項全過。 - 實機截圖確認兩行版面正確。截圖當下剛好收到另一個 session 的真實事件, 標題顯示 "telegram-codex-bot"、第二行是該 session 的助理說明, 等於用實際流量驗證了多 session 下的標題辨識。 - 以 ELECTRON_RUN_AS_NODE 讀打包後 app.asar,確認版本 2.0.5 與十項改動都在出貨檔案裡, 包含舊的 suffix 已完全移除。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
- **真正的桌面寵物** — 透明、無邊框、永遠置頂;透明區域**點穿**,只有壓在人物像素上滑鼠才會被吃掉,不擋你操作底下的視窗。
|
||||
- **不搶焦點** — 視窗設為 non-focusable,點她不會讓終端機失焦。
|
||||
- **拖曳 / 點擊 / 右鍵** — 拖曳時依方向播 running-left / running-right 並記住位置;點一下揮手;右鍵或系統匣開選單。
|
||||
- **對話氣泡** — 完成、需要授權、有問題要問你、工具失敗、整理記憶中……一眼看出 Claude Code 在等什麼。
|
||||
- **對話氣泡(兩行)** — 第一行是**對話名稱**(`/rename` 設的)或專案資料夾名,第二行才是訊息。同時開多個 session 時一眼就知道是哪一個在叫你。
|
||||
- **工作中即時播報** — 氣泡會顯示正在用的工具與對象(`⚙️ 執行 npm run dist`、`📖 讀 renderer.js`),以及助理剛說的那句話(`💬 …`)。**注意:這不是思考過程**,原因見[能顯示什麼、不能顯示什麼](#能顯示什麼不能顯示什麼)。
|
||||
- **多 session** — 同時開好幾個 Claude Code 時,以 `waiting > running > review > idle` 的優先序顯示最需要你注意的那個。
|
||||
- **Codex 寵物自動出現** — 預設也掃描 `~/.codex/pets`,Codex hatch 出來的寵物直接在選單裡切換。
|
||||
@@ -211,6 +211,8 @@ Spritesheet:**1536 × 2288**,8 欄 × 11 列,每格 **192 × 208**,透
|
||||
|
||||
事件紀錄:`%USERPROFILE%\.claude-pet\events.log`(超過 2 MB 自動清空)。
|
||||
|
||||
氣泡的第一行是對話名稱或專案名,第二行是訊息;標題為空時整行會收起來,不會留空白。
|
||||
|
||||
## 架構與檔案
|
||||
|
||||
```
|
||||
@@ -264,6 +266,14 @@ Claude Code ──hook(stdin JSON)──▶ hook/claude-pet-hook.js ──PO
|
||||
|---|---|---|
|
||||
| 工具動作 | `⚙️ 執行 npm run dist`、`📖 讀 renderer.js` | hook 的 `tool_name` 與 `tool_input` |
|
||||
| 助理說明 | 助理剛講那段話的第一句 | 由 `transcript_path` 讀 transcript 尾端的 `text` 區塊 |
|
||||
| 氣泡標題 | 對話名稱,沒設就用專案資料夾名 | transcript 的 `custom-title`(`/rename` 寫進去的),退回 `cwd` 的最後一段 |
|
||||
|
||||
氣泡長這樣:
|
||||
|
||||
```
|
||||
claude-pet
|
||||
💬 兩行氣泡正確運作,這是真實事件。
|
||||
```
|
||||
|
||||
同一段說明只播報一次(以 transcript 的 uuid 判斷),markdown 標記會先清掉,
|
||||
等待授權時不播報以免蓋掉固定氣泡。讀 transcript 只讀最後 192 KB 並依檔案大小快取,
|
||||
|
||||
Reference in New Issue
Block a user