From ddabaa69a4cfa0c880e6c55f76f6f48eba4726ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E6=99=BA=E8=B6=850668000959?= Date: Sat, 6 Jun 2026 21:13:07 +0800 Subject: [PATCH] fix: safe startup info map access to prevent panic on nil agent --- .gitignore | Bin 819 -> 920 bytes cmd/picoclaw/internal/agent/helpers.go | 17 +++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e1736f56b639e050ca892521c4ca0d8f060983ed..bd9730001a44d52a97d1cd249b0b4c87c166c9c1 100644 GIT binary patch literal 920 zcmZWnO^?$s5Y4$#|AWy=2qM{|I7W7zKy z5M2y-qm&aK;uW%P*Yrm)848Nm6z8|%O$U%ffj)Uny50%bhL}N6;e+-97yR4(PC~eD zjOrg^NuVLSGRdhYLt<#6&X#pE|Bu-Yv#OBgiCp=6yA*!Guy04A_;@@W3$ZVuNA1%^ z-1w6@K;_BpP&9U2?`)jcfm&swK}EI9KFk*!666#|$Q$&Nb;Lqoc|{W~a7t%EubCdK z1uL3Kv?RrYM##biSKd>0hlNnJyt=~AnE00qHjXGBQu5B|LOl>)$RPCy7>CS_r5Txc zN~F=|!tX|C)H%mcAXp_+Nc}x>;q>cN`gE%QgKWXgP->WmHtU{*6+SR4`AQ?T{aMw0 z<@Q3~z*3Yp9Z?FdgO&`2SSLY#8Ms7m=Ss!T12y9nYit(0TI+rhBAqXBvUP>0itUj! m`@`(;+?o!uvbyN`SL_Xml+{?pDpy@qXa)MPQq{iNReu2TWf_D3 literal 819 zcmZuv!EO^V5WV{=j4C0BsD0;F0;&)PsxE?KoGjx9hbZgWYWGoa>Q_^Pq(B;eypvz~dhMHMwmC%(awNKBqkn=81Ar1Voq<{ShXG zw)q6r4QtU3d<7=`R5PA`45ZVA$-X8uf|x4u zVwN$gocio)P)+KO=G$Mm4L`p+99Xad`Q9n>x!ZLtjP3mBVmauSF4T6m%3OAKbQEU- ze26ZQ3fYqt-OcVA(^R0AJVQOhz66xgq|AwY4j`2ge)(F>=&kxXVQ12MD&iOzxu26z&--ysmiou;)~4Oc;^rDW`^GGYfcO)SW{9N zZ>d?dYR6;QZT<#aazfNPCZmWjR5ywmZb73{?SEV^R!!g9)L`u4Y{U7ZaOoypmI_|z z7A>vuaL6&N-t^CHr`|Me{TXi0PXEbl{(~|Da{DPtOhz}gUbdDWq1xcsNji_-s^1~h B5nBKN diff --git a/cmd/picoclaw/internal/agent/helpers.go b/cmd/picoclaw/internal/agent/helpers.go index 23227d56a..405a1c696 100644 --- a/cmd/picoclaw/internal/agent/helpers.go +++ b/cmd/picoclaw/internal/agent/helpers.go @@ -56,12 +56,17 @@ func agentCmd(message, sessionKey, model string, debug bool) error { // Print agent startup info (only for interactive mode) startupInfo := agentLoop.GetStartupInfo() - logger.InfoCF("agent", "Agent initialized", - map[string]any{ - "tools_count": startupInfo["tools"].(map[string]any)["count"], - "skills_total": startupInfo["skills"].(map[string]any)["total"], - "skills_available": startupInfo["skills"].(map[string]any)["available"], - }) + toolsInfo, _ := startupInfo["tools"].(map[string]any) + skillsInfo, _ := startupInfo["skills"].(map[string]any) + logFields := map[string]any{} + if toolsInfo != nil { + logFields["tools_count"] = toolsInfo["count"] + } + if skillsInfo != nil { + logFields["skills_total"] = skillsInfo["total"] + logFields["skills_available"] = skillsInfo["available"] + } + logger.InfoCF("agent", "Agent initialized", logFields) if message != "" { ctx := context.Background()