fix(parser): 修复 Gemini init 事件 session_id 未提取的问题 (#111)

Gemini CLI 的 session_id 出现在 init 事件中,但 parser 的 isGemini
判定条件只检查 role/delta/status 字段,导致 init 事件被当作
"Unknown event" 忽略,session_id 无法提取。

修复方案:在 isGemini 条件中增加对 init 事件的识别。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
makoMako
2026-01-08 14:52:58 +08:00
committed by GitHub
parent 8ea6d10be5
commit 81f298c2ea
2 changed files with 11 additions and 1 deletions

View File

@@ -171,7 +171,7 @@ func parseJSONStreamInternal(r io.Reader, warnFn func(string), infoFn func(strin
if !isClaude && event.Type == "result" && event.SessionID != "" && event.Status == "" {
isClaude = true
}
isGemini := event.Role != "" || event.Delta != nil || event.Status != ""
isGemini := (event.Type == "init" && event.SessionID != "") || event.Role != "" || event.Delta != nil || event.Status != ""
// Handle Codex events
if isCodex {