{"type":"session","version":3,"id":"83e7213c-9bed-499a-a287-ac3303608570","timestamp":"2026-03-10T01:52:21.285Z","cwd":"/home/kuhnn/.openclaw/workspace"}
{"type":"model_change","id":"1114a605","parentId":null,"timestamp":"2026-03-10T01:52:21.298Z","provider":"openai-codex","modelId":"gpt-5.4"}
{"type":"thinking_level_change","id":"ac97be71","parentId":"1114a605","timestamp":"2026-03-10T01:52:21.298Z","thinkingLevel":"low"}
{"type":"custom","customType":"model-snapshot","data":{"timestamp":1773107541309,"provider":"openai-codex","modelApi":"openai-codex-responses","modelId":"gpt-5.4"},"id":"81d1e8c9","parentId":"ac97be71","timestamp":"2026-03-10T01:52:21.309Z"}
{"type":"message","id":"9fb02f2e","parentId":"81d1e8c9","timestamp":"2026-03-10T01:52:21.339Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:52 GMT] Wake up, my friend!"}],"timestamp":1773107541317}}
{"type":"message","id":"7726b1e7","parentId":"9fb02f2e","timestamp":"2026-03-10T01:52:26.884Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7958788881918be909cc390ba3d4\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3laBUzLqU4ekhzqBZ_dcUavG0-ZhkFamV0AdIl5NbYvGiilfNT6WOQd_APyQXGpkje9E5N8vqJUxozw_b3gJs5KNyXQW_luI60_G5WSLdF9v-fX3sjqsWQAsESZwmoihTaJOJpErvRjFnfUTHi9aLIeZ11P8uk93yojDGFL3HExaJo7KQO2dQQe6i8LkrTGAzwE8XK6Ha3chI0QBxJ23SHjWUUJteMSK96s2beLSjFZXNfgVTAC4OO3cFPrfa0x73cyQyQz0gBDmSEAL4VZhqMBBaj-rztdwbpl4QTzArd7jqMt6NmeMccOyw-kHbbZvjaZbGune6FruXf4ZcjEmsfBHze93076PIRGApjuaDluHTcGAd6qWwTFkV-pXFv7DZuT2MqJoaK9vuSFJqoFAXmNxA1mhLKaRfB8e3TtLXt8o0cU6cewSbpNq45qwPcMW7-nwf9Wv4zOYqRMAuybgWMSlZSLel4oePfyQO1G8P5sufOkFV2u9fSHXPCtBWf7oip7s488cKqsAdTqXPqks66wOs4qkyXOVhrod_BNmwwDirrSlcut55TuplXfRXvP7cyWMWIRldkMuquITR5z9w4ESTous32lyMvdLOvF7HArqn75E4_BeM2mRdumPz2nZX4CkXRZk44KI3AS1oJtybxQ1oqKg0hKeG5LYwRnPgjvaukmFl16e-sN_8Lb12aV2eXZlzch7CBhYCYdRNmVS4dTMHex_Si3Uh6GEVf6l97xnbSsH4JudOMpXH9hNeeYf0lSYuxEDzAkK9K2sLMiERHTn_WscB-5gXTae7HoNIMth9F4CLV12zAceaXaEo2IdGaY-7AnHGeI8q7LF41ksFMvKqh1O_fYyBYehQsPSlbVRmQAwVGmXM9O9c3tUsUYIkrMqGxKUnTg3zFs9NYVB90JTe-FXApr-rtSxmsmyllPgtPhRQLyf7Ta9DaPysHn7wWJq6_qp7SBkBBk7MIW_s774hy6gaAjbE2fttlkrIM5-bGcLLrYo_uqmFlqaiqpvSz2WcaXPBe4jrfWOuxk5URTcZiqitXPe36qydLvpZ18TbeUoPHDBy7JLfkL6qfi6kyNKDL3HinOU-DZBC0MioaOOULX0nBSXkId-gcQrc6olC00o5GAu9gtLiRa2Ysc5KMZHVPttJef-Agy-8srrKMcxDNCLAJ1Xf1Xvw5a7Ky3svrqff9OMTA_xKIEt4FC2yfjHrxMFUuk01ee_06SSQb-QVjBPsOXn4Ol9Kid9GjbDI6R0Q09N7PoO8jq6NiVCWbL\",\"summary\":[]}"},{"type":"text","text":"[[reply_to_current]] Hey. I just came online. Who am I, and who are you?","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af795ac17c8191a25b31b11478a211\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":6627,"output":101,"cacheRead":2560,"cacheWrite":0,"totalTokens":9288,"cost":{"input":0.016567500000000002,"output":0.001515,"cacheRead":0.0006399999999999999,"cacheWrite":0,"total":0.018722500000000003}},"stopReason":"stop","timestamp":1773107541329}}
{"type":"message","id":"1dcbcf05","parentId":"7726b1e7","timestamp":"2026-03-10T01:52:33.263Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:52 GMT] hi"}],"timestamp":1773107553258}}
{"type":"message","id":"607f0620","parentId":"1dcbcf05","timestamp":"2026-03-10T01:52:37.426Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Considering conversational flow**\n\nI need to follow a bootstrap approach for conversation, making sure we start off on the right foot since we've already greeted each other. It might be good to ask a concise question to keep things engaging. Maybe I could mention something about a fresh workspace to add a bit of context! Let's keep it light and inviting while guiding the conversation smoothly. I'm wondering how best to approach this!","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7962bf6881918d20c11e9d434495\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3llZKlnLqKGw2fb3Iom6y4PrXzjDpI8EQO38hSalQlSTonrsgPoiW7ItFjfuH5CUymtnrQfDZEv8_MAOLdCtIc6Ry20ls7UMiWgYvOofo1eMFb3rPctxLnbjjBWiLg0fB4K9EVSS69HrcYFuwmAWuipkw822LguhqUBvpDCpoBgd-vvmTsh3hMNbFgVTXiOE_JSst_3lm5pELfiMso4Vk2fd3JMvK3qNMwApGINxIxiukF9-t5-yKBWSiY_RCmIp8UAKuCHufn85rvbYEDusVaFVbnhiwDE_-EzXpL6lycQ-n7c3ra-sdWH71nZLA1Cc8CIxG2MFwIIUCNPhkJEpChz0BoYbf4EKUd9RCaYv_aGSa_DckpAyfzowhyv-AUkT1V4W6VtHvnWlufLR6VujSOhHkrc8mLG2eesTWc96ROXOFkQFnmVajyYbkILAeKbkeoJjywxlr_YGg00Asg3E0tAfmtkDETKlMtn7LEg9R1vBbz_ikhBDSfMwwtYfUWAe_ZwGUnbQzvIgcYADe59mQzsC7rVjO5wB4ytgGMPIVyMfnsnt8QMv5RQ4Q6YGQPnvzJCDqkNfYBowv662kjSBOa_AsIk5fxY_frqmPzWuKxWTCMyPmpzFUyvTxBxVD_v44_zjI2uWX8rliWfo3rbX6ZglRPeO5RUR-OTSBG42nYfiaSTMZW5EI56J2KY2ubrXrO27L0iZQVQklw4O-JdlIeX5L8tZjqNFTXuys1xgDcDNZAIzLfVvr1Ph58otoO74RcDHDW4MaxarW51CxjVCmV4MAKH5nhaGzlrUqw9ujBnEpOGwPN6piBpQW76g56V5VNzEHGVDmhxC9YlnZnlIs-GGmLBuv3rkPa1GcdIXevFR4-Ukn7hOzMJgXFjQIDgwnDLnwqTZ4IbkafqbX_VE1W0i22lSLWAbr-T1hHoFinqrcLr9CdKWogr4T_Yt1Jd29Y9FjjFGCKyCatK8i59WN-pxQ==\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Considering conversational flow**\\n\\nI need to follow a bootstrap approach for conversation, making sure we start off on the right foot since we've already greeted each other. It might be good to ask a concise question to keep things engaging. Maybe I could mention something about a fresh workspace to add a bit of context! Let's keep it light and inviting while guiding the conversation smoothly. I'm wondering how best to approach this!\"}]}"},{"type":"text","text":"[[reply_to_current]] hi — good to be awake.\n\nI’ve got a blank identity card over here, so help me out:\n- what should I call you?\n- what should you call me?\n\nIf you want, I can also suggest a name/vibe/emoji for myself instead of making you do all the work.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af79653c088191aaf58ee1a069b907\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":203,"output":97,"cacheRead":9088,"cacheWrite":0,"totalTokens":9388,"cost":{"input":0.0005075,"output":0.0014550000000000001,"cacheRead":0.0022719999999999997,"cacheWrite":0,"total":0.0042345}},"stopReason":"stop","timestamp":1773107553260}}
{"type":"message","id":"0c6f31db","parentId":"607f0620","timestamp":"2026-03-10T01:54:19.100Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:54 GMT] open the web"}],"timestamp":1773107659096}}
{"type":"message","id":"b05f9db3","parentId":"0c6f31db","timestamp":"2026-03-10T01:54:23.766Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"I'm thinking about how to clarify the user's request. They mentioned \"open the web,\" but I can't access a browser here. I need to communicate that while I can't open a browser, I can still help with searches. It seems I should respond in a concise way, ensuring that it's clear what I can do and what I can't. I want to make sure the user understands my limitations while still offering support.","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af79ccad288191bea711d63153ba81\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3nPIc-XPGYdzB2thP2r0OSery9yR_exECEMTdboOTkoBkLizx7Xv_Nv0KJc-N8ubJFBkitBAW64sCI8hBvBumkXLjr1VZ7QtxGE7urmXWGQDCwWZMj9IN8-VSAAAjiVK_KsuVzLDu12nsG_r_bmKvGLP3XsAGqliR3mnfqx-SZRSl76oNTND9q39Q2rAl_9q50BZxlwrJoB-Fv6jTlesLMAKCCfW4uKzSliEzhkBvopYiroX3K2ubuSuFAY48OQ39U2kAEgdDYuFb2Qk39wvSZbW3hd25rxGmugVk1FedFAxJ4iVEyGvohhx4XWQJbgXG089ttvKUwt-wJc2n30ML0ukwdHbtTD7tWjGowqWbxVA0-hbwAJJnW73RE1awtSkGVssd3M6nvakiw2MSsgXPhryzcBrj5pAYGY0dLRDSRP_oKqIXrDT7C_Eq9f8YWMIwiwFce5ZDeLX53aQzPsTLxOm-n7WI8m0_3kj79H5iQUSvi95Y28aDIbsZ4CXcHyNlYJewbwGQIOp2oRZb1klusQTOKEJwyiN8Vhx0wrj1Vkwj0UFaTM_56r5VVldVgSZ1yxDFOWkRl63MpG9y_B19UuuWcuwrPugb-iV5Qa8HsslMk7b6e9XPImW2Edl_O_obF2G3lWkBbCDAoUrcTtKSXwAXSi6TUxMCsYue9Go2mxaggUCSUTJ9zZ1P-gNSSoSDHJ0tCTW1O-ZtT6NalPZ2ZbnIPMJg3ZHJm2fnNNawJBK-RwjAzg4V0JX1S2KUnNYZnLbgW7YdABOi9NyIW-XDirh5TbcJDwrZ59J00l7xgAtynOHr7O4x55rUFVkev0A-cCXs3H3hRNZPOnEIjPkF90MYeI25X9C1-mUqrJfuEfSglTWP2vMGNnUDIbVlO9fZCBQAG6q95PJxeZMGuLBI9J1muGKT1iDMOmCB8u-p4CoqFfumbJptnbAOWAbNZKTDbVEB8-kULO7zFtgeOXd8yBbp09IFSTdJoQrh4b_NNLgkyPG67-WXTTxoz_X7ff6Z4Nhr6uH0x6Ly-RNtoxbfjryE5HeNHa7S-QQAFDxApNO5NjYEEAV9bmfuHYx60QpjRdC6OZGrF4U6VLlkaYeRmiwc6QfZogUd8psvD-ChUUbKJt41E72EGCkUOmIMVoi0iJkmoc7AhkRHbDPEKMzKrs3A==\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'm thinking about how to clarify the user's request. They mentioned \\\"open the web,\\\" but I can't access a browser here. I need to communicate that while I can't open a browser, I can still help with searches. It seems I should respond in a concise way, ensuring that it's clear what I can do and what I can't. I want to make sure the user understands my limitations while still offering support.\"}]}"},{"type":"text","text":"[[reply_to_current]] I can’t literally open a browser from this chat right now.\n\nIf you mean one of these, say which:\n- open a website for you — send me the URL\n- help you find something on the web — tell me what\n- set up web access/browser tooling in OpenClaw — I can walk you through it","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af79cf9a688191b8359014a446e637\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":226,"output":132,"cacheRead":9216,"cacheWrite":0,"totalTokens":9574,"cost":{"input":0.0005650000000000001,"output":0.00198,"cacheRead":0.002304,"cacheWrite":0,"total":0.004849}},"stopReason":"stop","timestamp":1773107659098}}
{"type":"message","id":"686cfe46","parentId":"b05f9db3","timestamp":"2026-03-10T01:54:55.310Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:54 GMT] help me open the openclaw web"}],"timestamp":1773107695305}}
{"type":"message","id":"d152456c","parentId":"686cfe46","timestamp":"2026-03-10T01:55:01.173Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Exploring web UI access**\n\nI think I need to clarify how access to the web UI works. It might be a good idea to check the local documentation first, especially since I’m unsure about OpenClaw's behavior. There doesn’t seem to be a clear skill set related to that. Maybe I could run a tool to help? It feels like inspecting the docs would be my best first step in figuring this out! Let's see what I can find.","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af79f2220c819180dc1922605f3fb4\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3n0HYSN2N94qALmUawaW3LtIGehJiTTK0Pyui21izNSRR5vg4u6GmMFsj77-p0YeuLS687TloNdNbVYfnY4u7EfummzQHBRA8D2Gs_zV6RR_EH0RNX5dSbiU_r0sOKyYBTZE6yz2AniRt0UzMmIE76DOg8qkyVezeFYdQwQqqPSY6wAE6M8zJVXmjTntBCM9NTSIN07Od6yQ8Q2xcbzTli6Wa8toGpb1gcENdwEuQSLIQe1o39lfDTKm_8CX7fcOxFNIQkxHwTqOIEZhAEHQVdJvrCESQ6gYkym5Y96K2866UHAet_PxByfiorDbAo5ZA3GyRc7OJzwVxt__UGfjFP-fuEeDkTfmZliJdvnCFT7y_LesYTOazsxE8mWFtR_eCQAQhsim-ehiB471V-BIT9cF_V6W5eIRQiReib1Q64C065V2ta8eBTf_9lXa6fIbnmnj_VbHAVlzu2VuXfRzFoZLxw6i9ANO17T6tRMRhtJ4Vnt2Id3f5jpaEYfLjwrYq_YtjNn9MYUnMRxO5scK5a8QItehvCL9X6V5m86B7T_Dso4Gwd1Di0OHLzOiqGoJQlsXBvNKKryypI-u7D6cl4_KDVzDCPMPzyw8TXuWO9ISOA2x8f2BeBJ_UCW2cNUvJg9P0z38d_lhRXwAIU8UJpeG4-QMTXKRs3jbAzh5zD3G-0ZklBM6mQt6_WDoemC-bjwLVxsI767IwbRo9RZcxK8-y1LcPMfDmm1_tV8r5lUlcAtZqVHfDkwHbZV3wCBttBm5kotkKzFPpF7ZFYSet0f5vij6GkeI0ca5Sgfwyjhz7SKUuzVt3svPhm1Qlsb4Lh1rb9h2flnvnyBkq6XwEqqubSstfdBNUGKAVnXEOpKdpdVdUZXn1DcKyFJZAXBK9pbPT3UDOYhsDkxrZE2ya-SOy-gIN9AgixYdbYZYR6nXqMBCaI8kn3AcXBYUxq9jQxMwuQMWu4y8sSpvLc-iIX-d1nadET3bXYEkHLZBFRgZ-PRHPKMjYyDAmOdeWqVcXp1mhNX5pcHeS72vQfBXRdXnxsfreP2fOIR6dVQSL8syXk=\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Exploring web UI access**\\n\\nI think I need to clarify how access to the web UI works. It might be a good idea to check the local documentation first, especially since I’m unsure about OpenClaw's behavior. There doesn’t seem to be a clear skill set related to that. Maybe I could run a tool to help? It feels like inspecting the docs would be my best first step in figuring this out! Let's see what I can find.\"}]}"},{"type":"toolCall","id":"call_yLmxe1VFQGTm4i75FwyDREfn|fc_05d310e2cecc5a330169af79f4ea288191b88fe82033e4cbb0","name":"exec","arguments":{"command":"rg -n \"web(chat| ui| client|server)|gateway-client|web\" /home/kuhnn/.npm-global/lib/node_modules/openclaw/docs /home/kuhnn/.npm-global/lib/node_modules/openclaw -g '*.md' | head -80","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000},"partialJson":"{\"command\":\"rg -n \\\"web(chat| ui| client|server)|gateway-client|web\\\" /home/kuhnn/.npm-global/lib/node_modules/openclaw/docs /home/kuhnn/.npm-global/lib/node_modules/openclaw -g '*.md' | head -80\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":259,"output":140,"cacheRead":9344,"cacheWrite":0,"totalTokens":9743,"cost":{"input":0.0006475000000000001,"output":0.0021,"cacheRead":0.002336,"cacheWrite":0,"total":0.0050834999999999995}},"stopReason":"toolUse","timestamp":1773107695307}}
{"type":"message","id":"c41c9958","parentId":"d152456c","timestamp":"2026-03-10T01:55:01.278Z","message":{"role":"toolResult","toolCallId":"call_yLmxe1VFQGTm4i75FwyDREfn|fc_05d310e2cecc5a330169af79f4ea288191b88fe82033e4cbb0","toolName":"exec","content":[{"type":"text","text":"/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/prose.md:116:Direct URLs are fetched as-is. This uses the `web_fetch` tool (or `exec` for POST).\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/prose.md:126:| Web fetch                 | `web_fetch`      |\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:21:- Tools/Brave web search: add opt-in `tools.web.search.brave.mode: \"llm-context\"` so `web_search` can call Brave's LLM Context endpoint and return extracted grounding snippets with source metadata, plus config/docs/test coverage. (#33383) Thanks @thirumaleshp.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:25:- Tools/web search: alphabetize provider ordering across runtime selection, onboarding/configure pickers, and config metadata, so provider lists stay neutral and multi-key auto-detect now prefers Grok before Kimi. (#40259) thanks @kesku.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:49:- Tools/web search: restore Perplexity OpenRouter/Sonar compatibility for legacy `OPENROUTER_API_KEY`, `sk-or-...`, and explicit `perplexity.baseUrl` / `model` setups while keeping direct Perplexity keys on the native Search API path. (#39937) Thanks @obviyus.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:87:- Onboarding/web search: add provider selection step and full provider list in configure wizard, with SecretRef ref-mode support during onboarding. (#34009) Thanks @kesku and @thewilloftheshadow.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:124:- Onboarding/headless Linux daemon probe hardening: treat `systemctl --user is-enabled` probe failures as non-fatal during daemon install flow so onboarding no longer crashes on SSH/headless VPS environments before showing install guidance. (#37297) Thanks @acarbajal-web.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:126:- Tools/web_search Brave language-code validation: align `search_lang` handling with Brave-supported codes (including `zh-hans`, `zh-hant`, `en-gb`, and `pt-br`), map common alias inputs (`zh`, `ja`) to valid Brave values, and reject unsupported codes before upstream requests to prevent 422 failures. (#37260) Thanks @heyanming.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:128:- Tools/xAI native web-search collision guard: drop OpenClaw `web_search` from tool registration when routing to xAI/Grok model providers (including OpenRouter `x-ai/*`) to avoid duplicate tool-name request failures against provider-native `web_search`. (#14749) Thanks @realsamrat.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:163:- Control UI/iMessage duplicate reply routing: keep internal webchat turns on dispatcher delivery (instead of origin-channel reroute) so Control UI chats do not duplicate replies into iMessage, while preserving webchat-provider relayed routing for external surfaces. Fixes #33483. Thanks @alicexmolt.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:179:- Gateway/Control UI version reporting: align runtime and browser client version metadata to avoid `dev` placeholders, wait for bootstrap version before first UI websocket connect, and only forward bootstrap `serverVersion` to same-origin gateway targets to prevent cross-target version leakage. (from #35230, #30928, #33928) Thanks @Sid-Qin, @joelnishanth, and @MoerAI.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:229:- Routing/legacy session route inheritance: preserve external route metadata inheritance for legacy channel session keys (`agent:<agent>:<channel>:<peer>` and `...:thread:<id>`) so `chat.send` does not incorrectly fall back to webchat when valid delivery context exists. Follow-up to #33786.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:230:- Routing/legacy route guard tightening: require legacy session-key channel hints to match the saved delivery channel before inheriting external routing metadata, preventing custom namespaced keys like `agent:<agent>:work:<ticket>` from inheriting stale non-webchat routes.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:231:- Gateway/internal client routing continuity: prevent webchat/TUI/UI turns from inheriting stale external reply routes by requiring explicit `deliver: true` for external delivery, keeping main-session external inheritance scoped to non-Webchat/UI clients, and honoring configured `session.mainKey` when identifying main-session continuity. (from #35321, #34635, #35356) Thanks @alexyyyander and @Octane0411.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:300:- LINE/auth boundary hardening synthesis: enforce strict LINE webhook authn/z boundary semantics across pairing-store account scoping, DM/group allowlist separation, fail-closed webhook auth/runtime behavior, and replay/duplication controls (including in-flight replay reservation and post-success dedupe marking). (from #26701, #26683, #25978, #17593, #16619, #31990, #26047, #30584, #18777) Thanks @bmendonca3, @davidahmann, @harshang03, @haosenwang1018, @liuxiaopai-ai, @coygeek, and @Takhoffman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:302:- LINE/context and routing synthesis: fix group/room peer routing and command-authorization context propagation, and keep processing later events in mixed-success webhook batches. (from #21955, #24475, #27035, #28286) Thanks @lailoo, @mcaxtr, @jervyclaw, @Glucksberg, and @Takhoffman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:303:- LINE/status/config/webhook synthesis: fix status false positives from snapshot/config state and accept LINE webhook HEAD probes for compatibility. (from #10487, #25726, #27537, #27908, #31387) Thanks @BlueBirdBack, @stakeswky, @loiie45e, @puritysb, and @mcaxtr.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:315:- TUI/webchat command-owner scope alignment: treat internal-channel gateway sessions with `operator.admin` as owner-authorized in command auth, restoring cron/gateway/connector tool access for affected TUI/webchat sessions while keeping external channels on identity-based owner checks. (from #35666, #35673, #35704) Thanks @Naylenv, @Octane0411, and @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:324:- Gateway/chat.send route inheritance: keep explicit external delivery for channel-scoped sessions while preventing shared-main and other channel-agnostic webchat sessions from inheriting stale external routes, so Control UI replies stay on webchat without breaking selected channel-target sessions. (#34669) Thanks @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:339:- Google Chat/multi-account webhook auth fallback: when `channels.googlechat.accounts.default` carries shared webhook audience/path settings (for example after config normalization), inherit those defaults for named accounts while preserving top-level and per-account overrides, so inbound webhook verification no longer fails silently for named accounts missing duplicated audience fields. Fixes #38369.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:361:- Gateway/loopback announce URLs: treat `http://` and `https://` aliases with the same loopback/private-network policy as websocket URLs so loopback cron announce delivery no longer fails secure URL validation. (#39064) Thanks @Narcooo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:367:- UI/Control chat tool streaming: render tool events live in webchat without requiring refresh by enabling `tool-events` capability, fixing stream/event correlation, and resetting/reloading stream state around tool results and terminal events. (#39104) Thanks @jakepresent.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:370:- Agents/OpenAI WS compat store flag: omit `store` from `response.create` payloads when model compat sets `supportsStore: false`, preventing strict OpenAI-compatible providers from rejecting websocket requests with unknown-field errors. (#39113) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:374:- Voice-call plugin schema parity: add missing manifest `configSchema` fields (`webhookSecurity`, `streaming.preStartTimeoutMs|maxPendingConnections|maxPendingConnectionsPerIp|maxConnections`, `staleCallReaperSeconds`) so gateway AJV validation accepts already-supported runtime config instead of failing with `additionalProperties` errors. (#38892) Thanks @giumex.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:382:- Agents/OpenAI WS max-token zero forwarding: treat `maxTokens: 0` as an explicit value in websocket `response.create` payloads (instead of dropping it as falsy), with regression coverage for zero-token forwarding. (#39148) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:391:- Telegram/polling conflict recovery: reset the polling `webhookCleared` latch on `getUpdates` 409 conflicts so webhook cleanup re-runs on restart cycles and polling avoids infinite conflict loops. (#39205) Thanks @amittell.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:394:- Gateway/webchat route safety: block webchat/control-ui clients from inheriting stored external delivery routes on channel-scoped sessions (while preserving route inheritance for UI/TUI clients), preventing cross-channel leakage from scoped chats. (#39175) Thanks @widingmarcus-cyber.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:402:- Control UI/auth error reporting: map generic browser `Fetch failed` websocket close errors back to actionable gateway auth messages (`gateway token mismatch`, `authentication failed`, `retry later`) so dashboard disconnects stop hiding credential problems. Landed from contributor PR #28608 by @KimGLee. Thanks @KimGLee.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:428:- Gateway/Telegram webhook-mode recovery: add `webhookCertPath` to re-upload self-signed certificates during webhook registration and skip stale-socket detection for webhook-mode channels, so Telegram webhook setups survive health-monitor restarts. Landed from contributor PR #39313 by @fellanH. Thanks @fellanH.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:467:- **BREAKING:** Plugin SDK removed `api.registerHttpHandler(...)`. Plugins must register explicit HTTP routes via `api.registerHttpRoute({ path, auth, match, handler })`, and dynamic webhook lifecycles should use `registerPluginHttpRoute(...)`.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:481:- Feishu/Plugin sdk compatibility: add safe webhook default fallbacks when loading Feishu monitor state so mixed-version installs no longer crash if older `openclaw/plugin-sdk` builds omit webhook default constants. (#31606)\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:483:- Gateway/Subagent TLS pairing: allow authenticated local `gateway-client` backend self-connections to skip device pairing while still requiring pairing for non-local/direct-host paths, restoring `sessions_spawn` with `gateway.tls.enabled=true` in Docker/LAN setups. Fixes #30740. Thanks @Sid-Qin and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:485:- Synology Chat/webhook ingress hardening: enforce bounded body reads (size + timeout) via shared request-body guards to prevent unauthenticated slow-body hangs before token validation. (#25831) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:487:- Voice-call/runtime lifecycle: prevent `EADDRINUSE` loops by resetting failed runtime promises, making webhook `start()` idempotent with the actual bound port, and fully cleaning up webhook/tunnel/tailscale resources after startup failures. (#32395) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:488:- Gateway/Security hardening: tie loopback-origin dev allowance to actual local socket clients (not Host header claims), add explicit warnings/metrics when `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback` accepts websocket origins, harden safe-regex detection for quantified ambiguous alternation patterns (for example `(a|aa)+`), and bound large regex-evaluation inputs for session-filter and log-redaction paths.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:489:- Gateway/Plugin HTTP hardening: require explicit `auth` for plugin route registration, add route ownership guards for duplicate `path+match` registrations, centralize plugin path matching/auth logic into dedicated modules, and share webhook target-route lifecycle wiring across channel monitors to avoid stale or conflicting registrations. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:493:- Security/Webhook request hardening: enforce auth-before-body parsing for BlueBubbles and Google Chat webhook handlers, add strict pre-auth body/time budgets for webhook auth paths (including LINE signature verification), and add shared in-flight/request guardrails plus regression tests/lint checks to prevent reintroducing unauthenticated slow-body DoS patterns. Thanks @GCXWLP for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:497:- Synology Chat/gateway lifecycle: keep `startAccount` pending until abort for inactive and active account paths to prevent webhook route restart loops under gateway supervision. (#23074) Thanks @druide67.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:499:- Synology Chat/webhook compatibility: accept JSON and alias payload fields, allow token resolution from body/query/header sources, and ACK webhook requests with `204` to avoid persistent `Processing...` states in Synology Chat clients. (#26635) Thanks @memphislee09-source.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:512:- Gateway/Control UI basePath webhook passthrough: let non-read methods under configured `controlUiBasePath` fall through to plugin routes (instead of returning Control UI 405), restoring webhook handlers behind basePath mounts. (#32311) Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:519:- Security/Web tools SSRF guard: keep DNS pinning for untrusted `web_fetch` and citation-redirect URL checks when proxy env vars are set, and require explicit dangerous opt-in before env-proxy routing can bypass pinned dispatch for trusted/operator-controlled endpoints. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:520:- Gemini schema sanitization: coerce malformed JSON Schema `properties` values (`null`, arrays, primitives) to `{}` before provider validation, preventing downstream strict-validator crashes on invalid plugin/tool schemas. (#32332) Thanks @webdevtodayjason.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:524:- Browser/CDP startup readiness: wait for CDP websocket readiness after launching Chrome and cleanly stop/reset when readiness never arrives, reducing follow-up `PortInUseError` races after `browser start`/`open`. (#29538) Thanks @AaronWander.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:529:- Gateway/OpenAI chat completions: honor `x-openclaw-message-channel` when building `agentCommand` input for `/v1/chat/completions`, preserving caller channel identity instead of forcing `webchat`. (#30462) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:538:- Voice-call/Twilio external outbound: auto-register webhook-first `outbound-api` calls (initiated outside OpenClaw) so media streams are accepted and call direction metadata stays accurate. (#31181) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:545:- Synology Chat/reply delivery: resolve webhook usernames to Chat API `user_id` values for outbound chatbot replies, avoiding mismatches between webhook user IDs and `method=chatbot` recipient IDs in multi-account setups. (#23709) Thanks @druide67.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:549:- Voice-call/webhook routing: require exact webhook path matches (instead of prefix matches) so lookalike paths cannot reach provider verification/dispatch logic. (#31930) Thanks @afurm.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:550:- Zalo/Pairing auth tests: add webhook regression coverage asserting DM pairing-store reads/writes remain account-scoped, preventing cross-account authorization bleed in multi-account setups. (#26121) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:561:- Gateway/Plugin HTTP route precedence: run explicit plugin HTTP routes before the Control UI SPA catch-all so registered plugin webhook/custom paths remain reachable, while unmatched paths still fall through to Control UI handling. (#31885) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:563:- Gateway/Control UI basePath POST handling: return 405 for `POST` on exact basePath routes (for example `/openclaw`) instead of redirecting, and add end-to-end regression coverage that root-mounted webhook POST paths still pass through to plugin handlers. (#31349) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:571:- Browser/CDP status accuracy: require a successful `Browser.getVersion` response over the CDP websocket (not just socket-open) before reporting `cdpReady`, so stale idle command channels are surfaced as unhealthy. (#23427) Thanks @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:583:- Hooks/webhook ACK compatibility: return `200` (instead of `202`) for successful `/hooks/agent` requests so providers that require `200` (for example Forward Email) accept dispatched agent hook deliveries. (#28204) Thanks @AIflow-Labs.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:584:- Feishu/Run channel fallback: prefer `Provider` over `Surface` when inferring queued run `messageProvider` fallback (when `OriginatingChannel` is missing), preventing Feishu turns from being mislabeled as `webchat` in mixed relay metadata contexts. (#31880) Fixes #31859. Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:586:- Inbound metadata/direct relay context: restore direct-channel conversation metadata blocks for external channels (for example WhatsApp) while preserving webchat-direct suppression, so relay agents recover sender/message identifiers without reintroducing internal webchat metadata noise. (#31969) Fixes #29972. Thanks @Lucenx9.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:593:- WhatsApp/inbound self-message context: propagate inbound `fromMe` through the web inbox pipeline and annotate direct self messages as `(self)` in envelopes so agents can distinguish owner-authored turns from contact turns. (#32167) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:620:- Browser/Remote CDP ownership checks: skip local-process ownership errors for non-loopback remote CDP profiles when HTTP is reachable but the websocket handshake fails, and surface the remote websocket attach/retry path instead. (#15582) Landed from contributor (#28780) Thanks @stubbi, @bsormagec, @unblockedgamesstudio and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:691:- Security/Feishu webhook ingress: bound unauthenticated webhook rate-limit state with stale-window pruning and a hard key cap to prevent unbounded pre-auth memory growth from rotating source keys. (#26050) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:693:- Web tools/RFC2544 fake-IP compatibility: allow RFC2544 benchmark range (`198.18.0.0/15`) for trusted web-tool fetch endpoints so proxy fake-IP networking modes do not trigger false SSRF blocks. Landed from contributor PR #31176 by @sunkinux. Thanks @sunkinux.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:744:- Feishu/Multi-account + reply reliability: add `channels.feishu.defaultAccount` outbound routing support with schema validation, keep quoted-message extraction text-first (post/interactive/file placeholders instead of raw JSON), route Feishu video sends as `msg_type: \"file\"`, and avoid websocket event blocking by using non-blocking event handling in monitor dispatch. Landed from contributor PRs #29610, #30432, #30331, and #29501. Thanks @hclsys, @bmendonca3, @patrick-yingxi-pan, and @zwffff.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:810:- Security/Zalo webhook memory hardening: bound webhook security tracking state and normalize security keying to matched webhook paths (excluding attacker query-string churn) to prevent unauthenticated memory growth pressure on reachable webhook endpoints. Thanks @Somet2mes.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:812:- Hooks/auth throttling: reject non-`POST` `/hooks/*` requests before auth-failure accounting so unsupported methods can no longer burn the hook auth lockout budget and block legitimate webhook delivery. Thanks @JNX03 for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:815:- Gateway/Plugin HTTP auth hardening: require gateway auth for protected plugin paths and explicit `registerHttpRoute` paths (while preserving wildcard-handler behavior for signature-auth webhooks), and run plugin handlers after built-in handlers for deterministic route precedence. Landed from contributor PR #29198. Thanks @Mariana-Codebase.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:820:- Dashboard/Sessions: allow authenticated Control UI clients to delete and patch sessions while still blocking regular webchat clients from session mutation RPCs, fixing Dashboard session delete failures. (#21264) Thanks @jskoiz.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:827:- Feishu/Multi-account + reply reliability: add `channels.feishu.defaultAccount` outbound routing support with schema validation, prevent inbound preview text from leaking into prompt system events, keep quoted-message extraction text-first (post/interactive/file placeholders instead of raw JSON), route Feishu video sends as `msg_type: \"file\"`, and avoid websocket event blocking by using non-blocking event handling in monitor dispatch. Landed from contributor PRs #31209, #29610, #30432, #30331, and #29501. Thanks @stakeswky, @hclsys, @bmendonca3, @patrick-yingxi-pan, and @zwffff.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:853:- Slack/HTTP mode startup: treat Slack HTTP accounts as configured when `botToken` + `signingSecret` are present (without requiring `appToken`) in channel config/runtime status so webhook mode is not silently skipped. (#30567) Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:857:- Slack/Disabled channel startup: skip Slack monitor socket startup entirely when `channels.slack.enabled=false` (including configs that still contain valid tokens), preventing disabled accounts from opening websocket connections. (#30586) Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:861:- Slack/Bot attachment-only messages: when `allowBots: true`, bot messages with empty `text` now include non-forwarded attachment `text`/`fallback` content so webhook alerts are not silently dropped. (#27616) Thanks @lailoo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:872:- Cron/Failure delivery routing: add `failureAlert.mode` (`announce|webhook`) and `failureAlert.accountId` support, plus `cron.failureDestination` and per-job `delivery.failureDestination` routing with duplicate-target suppression, best-effort skip behavior, and global+job merge semantics. Landed from contributor PR #31059. Thanks @kesor.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:961:- Google Chat/Lifecycle: keep Google Chat `startAccount` pending until abort in webhook mode so startup is no longer interpreted as immediate exit, preventing auto-restart loops and webhook-target churn. (#27384) thanks @junsuwhy.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:963:- Nextcloud Talk/Lifecycle: keep `startAccount` pending until abort and stop the webhook monitor on shutdown, preventing `EADDRINUSE` restart loops when the gateway manages account lifecycle. (#27897) Thanks @steipete.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:968:- Typing/Cross-channel leakage: unify run-scoped typing suppression for cross-channel/internal-webchat routes, preserve current inbound origin as embedded run message channel context, harden shared typing keepalive with consecutive-failure circuit breaker edge-case handling, and enforce dispatcher completion/idle waits in extension dispatcher callsites (Feishu, Matrix, Mattermost, MSTeams) so typing indicators always clean up on success/error paths. Related: #27647, #27493, #27598. Supersedes/replaces draft PRs: #27640, #27593, #27540.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:970:- Telegram/Webhook startup: clarify webhook config guidance, allow `channels.telegram.webhookPort: 0` for ephemeral listener binding, and log both the local listener URL and Telegram-advertised webhook URL with the bound port. (#25732) thanks @huntharo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1029:- Security/Voice Call (Twilio): bind webhook replay + manager dedupe identity to authenticated request material, remove unsigned `i-twilio-idempotency-token` trust from replay/dedupe keys, and thread verified request identity through provider parse flow to harden cross-provider event dedupe. This ships in the next npm release (`2026.2.26`). Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1035:- Web tools/Proxy: route `web_search` provider HTTP calls (Brave, Perplexity, xAI, Gemini, Kimi), redirect resolution, and `web_fetch` through a shared proxy-aware SSRF guard path so gateway installs behind `HTTP_PROXY`/`HTTPS_PROXY`/`ALL_PROXY` no longer fail with transport `fetch failed` errors. (#27430) thanks @kevinWangSheng.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1068:- Telegram/Webhook: pre-initialize webhook bots, switch webhook processing to callback-mode JSON handling, and preserve full near-limit payload reads under delayed handlers to prevent webhook request hangs and dropped updates. (#26156) Thanks @steipete.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1074:- LINE/Lifecycle: keep LINE `startAccount` pending until abort so webhook startup is no longer misread as immediate channel exit, preventing restart-loop storms on LINE provider boot. (#26528) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1113:- Security/Nextcloud Talk: drop replayed signed webhook events with persistent per-account replay dedupe across restarts, and reject unexpected webhook backend origins when account base URL is configured. Thanks @aristorechina for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1114:- Security/Nextcloud Talk: reject unsigned webhook traffic before full body reads, reducing unauthenticated request-body exposure, with auth-order regression coverage. (#26118) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1116:- Security/LINE: cap unsigned webhook body reads before auth/signature handling to bound unauthenticated body processing. (#26095) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1121:- Feishu/WebSocket proxy: pass a proxy agent to Feishu WS clients from standard proxy environment variables and include plugin-local runtime dependency wiring so websocket mode works in proxy-constrained installs. (#26397) Thanks @colin719."}],"details":{"status":"completed","exitCode":0,"durationMs":78,"aggregated":"/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/prose.md:116:Direct URLs are fetched as-is. This uses the `web_fetch` tool (or `exec` for POST).\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/prose.md:126:| Web fetch                 | `web_fetch`      |\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:21:- Tools/Brave web search: add opt-in `tools.web.search.brave.mode: \"llm-context\"` so `web_search` can call Brave's LLM Context endpoint and return extracted grounding snippets with source metadata, plus config/docs/test coverage. (#33383) Thanks @thirumaleshp.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:25:- Tools/web search: alphabetize provider ordering across runtime selection, onboarding/configure pickers, and config metadata, so provider lists stay neutral and multi-key auto-detect now prefers Grok before Kimi. (#40259) thanks @kesku.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:49:- Tools/web search: restore Perplexity OpenRouter/Sonar compatibility for legacy `OPENROUTER_API_KEY`, `sk-or-...`, and explicit `perplexity.baseUrl` / `model` setups while keeping direct Perplexity keys on the native Search API path. (#39937) Thanks @obviyus.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:87:- Onboarding/web search: add provider selection step and full provider list in configure wizard, with SecretRef ref-mode support during onboarding. (#34009) Thanks @kesku and @thewilloftheshadow.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:124:- Onboarding/headless Linux daemon probe hardening: treat `systemctl --user is-enabled` probe failures as non-fatal during daemon install flow so onboarding no longer crashes on SSH/headless VPS environments before showing install guidance. (#37297) Thanks @acarbajal-web.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:126:- Tools/web_search Brave language-code validation: align `search_lang` handling with Brave-supported codes (including `zh-hans`, `zh-hant`, `en-gb`, and `pt-br`), map common alias inputs (`zh`, `ja`) to valid Brave values, and reject unsupported codes before upstream requests to prevent 422 failures. (#37260) Thanks @heyanming.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:128:- Tools/xAI native web-search collision guard: drop OpenClaw `web_search` from tool registration when routing to xAI/Grok model providers (including OpenRouter `x-ai/*`) to avoid duplicate tool-name request failures against provider-native `web_search`. (#14749) Thanks @realsamrat.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:163:- Control UI/iMessage duplicate reply routing: keep internal webchat turns on dispatcher delivery (instead of origin-channel reroute) so Control UI chats do not duplicate replies into iMessage, while preserving webchat-provider relayed routing for external surfaces. Fixes #33483. Thanks @alicexmolt.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:179:- Gateway/Control UI version reporting: align runtime and browser client version metadata to avoid `dev` placeholders, wait for bootstrap version before first UI websocket connect, and only forward bootstrap `serverVersion` to same-origin gateway targets to prevent cross-target version leakage. (from #35230, #30928, #33928) Thanks @Sid-Qin, @joelnishanth, and @MoerAI.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:229:- Routing/legacy session route inheritance: preserve external route metadata inheritance for legacy channel session keys (`agent:<agent>:<channel>:<peer>` and `...:thread:<id>`) so `chat.send` does not incorrectly fall back to webchat when valid delivery context exists. Follow-up to #33786.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:230:- Routing/legacy route guard tightening: require legacy session-key channel hints to match the saved delivery channel before inheriting external routing metadata, preventing custom namespaced keys like `agent:<agent>:work:<ticket>` from inheriting stale non-webchat routes.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:231:- Gateway/internal client routing continuity: prevent webchat/TUI/UI turns from inheriting stale external reply routes by requiring explicit `deliver: true` for external delivery, keeping main-session external inheritance scoped to non-Webchat/UI clients, and honoring configured `session.mainKey` when identifying main-session continuity. (from #35321, #34635, #35356) Thanks @alexyyyander and @Octane0411.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:300:- LINE/auth boundary hardening synthesis: enforce strict LINE webhook authn/z boundary semantics across pairing-store account scoping, DM/group allowlist separation, fail-closed webhook auth/runtime behavior, and replay/duplication controls (including in-flight replay reservation and post-success dedupe marking). (from #26701, #26683, #25978, #17593, #16619, #31990, #26047, #30584, #18777) Thanks @bmendonca3, @davidahmann, @harshang03, @haosenwang1018, @liuxiaopai-ai, @coygeek, and @Takhoffman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:302:- LINE/context and routing synthesis: fix group/room peer routing and command-authorization context propagation, and keep processing later events in mixed-success webhook batches. (from #21955, #24475, #27035, #28286) Thanks @lailoo, @mcaxtr, @jervyclaw, @Glucksberg, and @Takhoffman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:303:- LINE/status/config/webhook synthesis: fix status false positives from snapshot/config state and accept LINE webhook HEAD probes for compatibility. (from #10487, #25726, #27537, #27908, #31387) Thanks @BlueBirdBack, @stakeswky, @loiie45e, @puritysb, and @mcaxtr.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:315:- TUI/webchat command-owner scope alignment: treat internal-channel gateway sessions with `operator.admin` as owner-authorized in command auth, restoring cron/gateway/connector tool access for affected TUI/webchat sessions while keeping external channels on identity-based owner checks. (from #35666, #35673, #35704) Thanks @Naylenv, @Octane0411, and @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:324:- Gateway/chat.send route inheritance: keep explicit external delivery for channel-scoped sessions while preventing shared-main and other channel-agnostic webchat sessions from inheriting stale external routes, so Control UI replies stay on webchat without breaking selected channel-target sessions. (#34669) Thanks @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:339:- Google Chat/multi-account webhook auth fallback: when `channels.googlechat.accounts.default` carries shared webhook audience/path settings (for example after config normalization), inherit those defaults for named accounts while preserving top-level and per-account overrides, so inbound webhook verification no longer fails silently for named accounts missing duplicated audience fields. Fixes #38369.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:361:- Gateway/loopback announce URLs: treat `http://` and `https://` aliases with the same loopback/private-network policy as websocket URLs so loopback cron announce delivery no longer fails secure URL validation. (#39064) Thanks @Narcooo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:367:- UI/Control chat tool streaming: render tool events live in webchat without requiring refresh by enabling `tool-events` capability, fixing stream/event correlation, and resetting/reloading stream state around tool results and terminal events. (#39104) Thanks @jakepresent.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:370:- Agents/OpenAI WS compat store flag: omit `store` from `response.create` payloads when model compat sets `supportsStore: false`, preventing strict OpenAI-compatible providers from rejecting websocket requests with unknown-field errors. (#39113) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:374:- Voice-call plugin schema parity: add missing manifest `configSchema` fields (`webhookSecurity`, `streaming.preStartTimeoutMs|maxPendingConnections|maxPendingConnectionsPerIp|maxConnections`, `staleCallReaperSeconds`) so gateway AJV validation accepts already-supported runtime config instead of failing with `additionalProperties` errors. (#38892) Thanks @giumex.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:382:- Agents/OpenAI WS max-token zero forwarding: treat `maxTokens: 0` as an explicit value in websocket `response.create` payloads (instead of dropping it as falsy), with regression coverage for zero-token forwarding. (#39148) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:391:- Telegram/polling conflict recovery: reset the polling `webhookCleared` latch on `getUpdates` 409 conflicts so webhook cleanup re-runs on restart cycles and polling avoids infinite conflict loops. (#39205) Thanks @amittell.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:394:- Gateway/webchat route safety: block webchat/control-ui clients from inheriting stored external delivery routes on channel-scoped sessions (while preserving route inheritance for UI/TUI clients), preventing cross-channel leakage from scoped chats. (#39175) Thanks @widingmarcus-cyber.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:402:- Control UI/auth error reporting: map generic browser `Fetch failed` websocket close errors back to actionable gateway auth messages (`gateway token mismatch`, `authentication failed`, `retry later`) so dashboard disconnects stop hiding credential problems. Landed from contributor PR #28608 by @KimGLee. Thanks @KimGLee.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:428:- Gateway/Telegram webhook-mode recovery: add `webhookCertPath` to re-upload self-signed certificates during webhook registration and skip stale-socket detection for webhook-mode channels, so Telegram webhook setups survive health-monitor restarts. Landed from contributor PR #39313 by @fellanH. Thanks @fellanH.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:467:- **BREAKING:** Plugin SDK removed `api.registerHttpHandler(...)`. Plugins must register explicit HTTP routes via `api.registerHttpRoute({ path, auth, match, handler })`, and dynamic webhook lifecycles should use `registerPluginHttpRoute(...)`.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:481:- Feishu/Plugin sdk compatibility: add safe webhook default fallbacks when loading Feishu monitor state so mixed-version installs no longer crash if older `openclaw/plugin-sdk` builds omit webhook default constants. (#31606)\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:483:- Gateway/Subagent TLS pairing: allow authenticated local `gateway-client` backend self-connections to skip device pairing while still requiring pairing for non-local/direct-host paths, restoring `sessions_spawn` with `gateway.tls.enabled=true` in Docker/LAN setups. Fixes #30740. Thanks @Sid-Qin and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:485:- Synology Chat/webhook ingress hardening: enforce bounded body reads (size + timeout) via shared request-body guards to prevent unauthenticated slow-body hangs before token validation. (#25831) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:487:- Voice-call/runtime lifecycle: prevent `EADDRINUSE` loops by resetting failed runtime promises, making webhook `start()` idempotent with the actual bound port, and fully cleaning up webhook/tunnel/tailscale resources after startup failures. (#32395) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:488:- Gateway/Security hardening: tie loopback-origin dev allowance to actual local socket clients (not Host header claims), add explicit warnings/metrics when `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback` accepts websocket origins, harden safe-regex detection for quantified ambiguous alternation patterns (for example `(a|aa)+`), and bound large regex-evaluation inputs for session-filter and log-redaction paths.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:489:- Gateway/Plugin HTTP hardening: require explicit `auth` for plugin route registration, add route ownership guards for duplicate `path+match` registrations, centralize plugin path matching/auth logic into dedicated modules, and share webhook target-route lifecycle wiring across channel monitors to avoid stale or conflicting registrations. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:493:- Security/Webhook request hardening: enforce auth-before-body parsing for BlueBubbles and Google Chat webhook handlers, add strict pre-auth body/time budgets for webhook auth paths (including LINE signature verification), and add shared in-flight/request guardrails plus regression tests/lint checks to prevent reintroducing unauthenticated slow-body DoS patterns. Thanks @GCXWLP for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:497:- Synology Chat/gateway lifecycle: keep `startAccount` pending until abort for inactive and active account paths to prevent webhook route restart loops under gateway supervision. (#23074) Thanks @druide67.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:499:- Synology Chat/webhook compatibility: accept JSON and alias payload fields, allow token resolution from body/query/header sources, and ACK webhook requests with `204` to avoid persistent `Processing...` states in Synology Chat clients. (#26635) Thanks @memphislee09-source.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:512:- Gateway/Control UI basePath webhook passthrough: let non-read methods under configured `controlUiBasePath` fall through to plugin routes (instead of returning Control UI 405), restoring webhook handlers behind basePath mounts. (#32311) Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:519:- Security/Web tools SSRF guard: keep DNS pinning for untrusted `web_fetch` and citation-redirect URL checks when proxy env vars are set, and require explicit dangerous opt-in before env-proxy routing can bypass pinned dispatch for trusted/operator-controlled endpoints. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:520:- Gemini schema sanitization: coerce malformed JSON Schema `properties` values (`null`, arrays, primitives) to `{}` before provider validation, preventing downstream strict-validator crashes on invalid plugin/tool schemas. (#32332) Thanks @webdevtodayjason.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:524:- Browser/CDP startup readiness: wait for CDP websocket readiness after launching Chrome and cleanly stop/reset when readiness never arrives, reducing follow-up `PortInUseError` races after `browser start`/`open`. (#29538) Thanks @AaronWander.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:529:- Gateway/OpenAI chat completions: honor `x-openclaw-message-channel` when building `agentCommand` input for `/v1/chat/completions`, preserving caller channel identity instead of forcing `webchat`. (#30462) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:538:- Voice-call/Twilio external outbound: auto-register webhook-first `outbound-api` calls (initiated outside OpenClaw) so media streams are accepted and call direction metadata stays accurate. (#31181) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:545:- Synology Chat/reply delivery: resolve webhook usernames to Chat API `user_id` values for outbound chatbot replies, avoiding mismatches between webhook user IDs and `method=chatbot` recipient IDs in multi-account setups. (#23709) Thanks @druide67.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:549:- Voice-call/webhook routing: require exact webhook path matches (instead of prefix matches) so lookalike paths cannot reach provider verification/dispatch logic. (#31930) Thanks @afurm.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:550:- Zalo/Pairing auth tests: add webhook regression coverage asserting DM pairing-store reads/writes remain account-scoped, preventing cross-account authorization bleed in multi-account setups. (#26121) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:561:- Gateway/Plugin HTTP route precedence: run explicit plugin HTTP routes before the Control UI SPA catch-all so registered plugin webhook/custom paths remain reachable, while unmatched paths still fall through to Control UI handling. (#31885) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:563:- Gateway/Control UI basePath POST handling: return 405 for `POST` on exact basePath routes (for example `/openclaw`) instead of redirecting, and add end-to-end regression coverage that root-mounted webhook POST paths still pass through to plugin handlers. (#31349) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:571:- Browser/CDP status accuracy: require a successful `Browser.getVersion` response over the CDP websocket (not just socket-open) before reporting `cdpReady`, so stale idle command channels are surfaced as unhealthy. (#23427) Thanks @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:583:- Hooks/webhook ACK compatibility: return `200` (instead of `202`) for successful `/hooks/agent` requests so providers that require `200` (for example Forward Email) accept dispatched agent hook deliveries. (#28204) Thanks @AIflow-Labs.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:584:- Feishu/Run channel fallback: prefer `Provider` over `Surface` when inferring queued run `messageProvider` fallback (when `OriginatingChannel` is missing), preventing Feishu turns from being mislabeled as `webchat` in mixed relay metadata contexts. (#31880) Fixes #31859. Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:586:- Inbound metadata/direct relay context: restore direct-channel conversation metadata blocks for external channels (for example WhatsApp) while preserving webchat-direct suppression, so relay agents recover sender/message identifiers without reintroducing internal webchat metadata noise. (#31969) Fixes #29972. Thanks @Lucenx9.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:593:- WhatsApp/inbound self-message context: propagate inbound `fromMe` through the web inbox pipeline and annotate direct self messages as `(self)` in envelopes so agents can distinguish owner-authored turns from contact turns. (#32167) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:620:- Browser/Remote CDP ownership checks: skip local-process ownership errors for non-loopback remote CDP profiles when HTTP is reachable but the websocket handshake fails, and surface the remote websocket attach/retry path instead. (#15582) Landed from contributor (#28780) Thanks @stubbi, @bsormagec, @unblockedgamesstudio and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:691:- Security/Feishu webhook ingress: bound unauthenticated webhook rate-limit state with stale-window pruning and a hard key cap to prevent unbounded pre-auth memory growth from rotating source keys. (#26050) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:693:- Web tools/RFC2544 fake-IP compatibility: allow RFC2544 benchmark range (`198.18.0.0/15`) for trusted web-tool fetch endpoints so proxy fake-IP networking modes do not trigger false SSRF blocks. Landed from contributor PR #31176 by @sunkinux. Thanks @sunkinux.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:744:- Feishu/Multi-account + reply reliability: add `channels.feishu.defaultAccount` outbound routing support with schema validation, keep quoted-message extraction text-first (post/interactive/file placeholders instead of raw JSON), route Feishu video sends as `msg_type: \"file\"`, and avoid websocket event blocking by using non-blocking event handling in monitor dispatch. Landed from contributor PRs #29610, #30432, #30331, and #29501. Thanks @hclsys, @bmendonca3, @patrick-yingxi-pan, and @zwffff.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:810:- Security/Zalo webhook memory hardening: bound webhook security tracking state and normalize security keying to matched webhook paths (excluding attacker query-string churn) to prevent unauthenticated memory growth pressure on reachable webhook endpoints. Thanks @Somet2mes.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:812:- Hooks/auth throttling: reject non-`POST` `/hooks/*` requests before auth-failure accounting so unsupported methods can no longer burn the hook auth lockout budget and block legitimate webhook delivery. Thanks @JNX03 for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:815:- Gateway/Plugin HTTP auth hardening: require gateway auth for protected plugin paths and explicit `registerHttpRoute` paths (while preserving wildcard-handler behavior for signature-auth webhooks), and run plugin handlers after built-in handlers for deterministic route precedence. Landed from contributor PR #29198. Thanks @Mariana-Codebase.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:820:- Dashboard/Sessions: allow authenticated Control UI clients to delete and patch sessions while still blocking regular webchat clients from session mutation RPCs, fixing Dashboard session delete failures. (#21264) Thanks @jskoiz.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:827:- Feishu/Multi-account + reply reliability: add `channels.feishu.defaultAccount` outbound routing support with schema validation, prevent inbound preview text from leaking into prompt system events, keep quoted-message extraction text-first (post/interactive/file placeholders instead of raw JSON), route Feishu video sends as `msg_type: \"file\"`, and avoid websocket event blocking by using non-blocking event handling in monitor dispatch. Landed from contributor PRs #31209, #29610, #30432, #30331, and #29501. Thanks @stakeswky, @hclsys, @bmendonca3, @patrick-yingxi-pan, and @zwffff.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:853:- Slack/HTTP mode startup: treat Slack HTTP accounts as configured when `botToken` + `signingSecret` are present (without requiring `appToken`) in channel config/runtime status so webhook mode is not silently skipped. (#30567) Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:857:- Slack/Disabled channel startup: skip Slack monitor socket startup entirely when `channels.slack.enabled=false` (including configs that still contain valid tokens), preventing disabled accounts from opening websocket connections. (#30586) Thanks @liuxiaopai-ai.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:861:- Slack/Bot attachment-only messages: when `allowBots: true`, bot messages with empty `text` now include non-forwarded attachment `text`/`fallback` content so webhook alerts are not silently dropped. (#27616) Thanks @lailoo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:872:- Cron/Failure delivery routing: add `failureAlert.mode` (`announce|webhook`) and `failureAlert.accountId` support, plus `cron.failureDestination` and per-job `delivery.failureDestination` routing with duplicate-target suppression, best-effort skip behavior, and global+job merge semantics. Landed from contributor PR #31059. Thanks @kesor.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:961:- Google Chat/Lifecycle: keep Google Chat `startAccount` pending until abort in webhook mode so startup is no longer interpreted as immediate exit, preventing auto-restart loops and webhook-target churn. (#27384) thanks @junsuwhy.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:963:- Nextcloud Talk/Lifecycle: keep `startAccount` pending until abort and stop the webhook monitor on shutdown, preventing `EADDRINUSE` restart loops when the gateway manages account lifecycle. (#27897) Thanks @steipete.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:968:- Typing/Cross-channel leakage: unify run-scoped typing suppression for cross-channel/internal-webchat routes, preserve current inbound origin as embedded run message channel context, harden shared typing keepalive with consecutive-failure circuit breaker edge-case handling, and enforce dispatcher completion/idle waits in extension dispatcher callsites (Feishu, Matrix, Mattermost, MSTeams) so typing indicators always clean up on success/error paths. Related: #27647, #27493, #27598. Supersedes/replaces draft PRs: #27640, #27593, #27540.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:970:- Telegram/Webhook startup: clarify webhook config guidance, allow `channels.telegram.webhookPort: 0` for ephemeral listener binding, and log both the local listener URL and Telegram-advertised webhook URL with the bound port. (#25732) thanks @huntharo.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1029:- Security/Voice Call (Twilio): bind webhook replay + manager dedupe identity to authenticated request material, remove unsigned `i-twilio-idempotency-token` trust from replay/dedupe keys, and thread verified request identity through provider parse flow to harden cross-provider event dedupe. This ships in the next npm release (`2026.2.26`). Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1035:- Web tools/Proxy: route `web_search` provider HTTP calls (Brave, Perplexity, xAI, Gemini, Kimi), redirect resolution, and `web_fetch` through a shared proxy-aware SSRF guard path so gateway installs behind `HTTP_PROXY`/`HTTPS_PROXY`/`ALL_PROXY` no longer fail with transport `fetch failed` errors. (#27430) thanks @kevinWangSheng.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1068:- Telegram/Webhook: pre-initialize webhook bots, switch webhook processing to callback-mode JSON handling, and preserve full near-limit payload reads under delayed handlers to prevent webhook request hangs and dropped updates. (#26156) Thanks @steipete.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1074:- LINE/Lifecycle: keep LINE `startAccount` pending until abort so webhook startup is no longer misread as immediate channel exit, preventing restart-loop storms on LINE provider boot. (#26528) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1113:- Security/Nextcloud Talk: drop replayed signed webhook events with persistent per-account replay dedupe across restarts, and reject unexpected webhook backend origins when account base URL is configured. Thanks @aristorechina for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1114:- Security/Nextcloud Talk: reject unsigned webhook traffic before full body reads, reducing unauthenticated request-body exposure, with auth-order regression coverage. (#26118) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1116:- Security/LINE: cap unsigned webhook body reads before auth/signature handling to bound unauthenticated body processing. (#26095) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:1121:- Feishu/WebSocket proxy: pass a proxy agent to Feishu WS clients from standard proxy environment variables and include plugin-local runtime dependency wiring so websocket mode works in proxy-constrained installs. (#26397) Thanks @colin719.","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107701269}}
{"type":"message","id":"63efd02b","parentId":"c41c9958","timestamp":"2026-03-10T01:55:05.606Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"I'm thinking about how to provide helpful and concise information. I might suggest starting with the OpenClaw gateway and detailing the control UI URL. It feels important to know the exact command, along with the current status. Checking the documentation could help clarify that. I want to make sure I deliver clear guidance, so looking for the most straightforward way to do this is key!","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af79f710b88191bdf3e0375c276c7b\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3n5y_MQcKBPc8mrJEoveQgblFctSOWItZYGBmt-DBfPiAqrznUiXtSt8nb24f5_CbcTMNLYsUY1mwgKKWpakHTYl6gwPQSUFLW49Z8rxx33ULnfI8iuuqhuNzUqNbmsZ5bEIuDHo3K-kEgkyExbhkKFDBbfRySAekM0g-vjwfS_xrVQ1DHxA-paqJ4N_UqUpNWQWbDAiIuXxnsSaOdQfqgJGpmGpyyzheo0-hdCvFmjdBDeQ1Zzxu6kBK1VsyWMmxQonetMxaeFV8LJhA8jDpD1MeQOUap6heWSz1BbALIXmBtyaZuRTDellhaBcaSTfikQh7eVNvUPebEC1WCtMwh1SLNWESBG3J5sbyjIgCOl3P5hRm6ZHSq5sWdvqk_4wLasfi4IjyMMZGy9h-URSXKjaf2lQNTfZkwHfkMSvwppvkFdhMG2SKR6q2NYBQMxZL1EOddaAA3EwEk1Bt5r0DqrL68DWJhPyYobrYWYKlqRw2hc9OtoJ9sezNWIaEI3DCZq5v1HOMY_9W9vfgJPnRG-oQ2HhaT_LzM8WJTOGKQkl9WN58Sw1r7le4h9lVhtqe_74pFMWOEvCuP9PFU_R-ITMWFw8EPthBaqXrZcSQbrXB4_GJSZHe5PSp4HdA4NxmOY6-7wwFow_G0epqiDR_9uOpB-9OvWJ1lGgYyEKb6_FZmIUBkfoIMHAwmqeAx6GAFwmGk48NCton8YSlO6Gnj3wPdTj27lReZIOK-IIS4gxPFskAvsrsjiP06pyRAXQys-FXJZ-3mVugXVCdAvHh8H9iI5cEsGzDvo0u3EzPusUyyCjFvyYo0q1x1iSu0-q1rrATDKCJraJSHwYmG6olS1zsdJXkoghQaDTxB3wr8rYiSd3S0qbT4mW8xGDQtMsegCLrtGn6S3HVRm2deFRK0saaPRdEGSYdw_GmFgVYBu3c3OlLR_vzNIJtRSiVB4_6_URJydr3HjiJYlbO17-i-OyDzrJSTuNKt44fE9EEsDljQ=\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'm thinking about how to provide helpful and concise information. I might suggest starting with the OpenClaw gateway and detailing the control UI URL. It feels important to know the exact command, along with the current status. Checking the documentation could help clarify that. I want to make sure I deliver clear guidance, so looking for the most straightforward way to do this is key!\"}]}"},{"type":"toolCall","id":"call_glhOTPScELF9F1WUctb5IL5I|fc_05d310e2cecc5a330169af79f96d7c8191bf08a10ed681ae92","name":"exec","arguments":{"command":"openclaw status && echo '---' && openclaw gateway status","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"openclaw status && echo '---' && openclaw gateway status\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":6743,"output":91,"cacheRead":9600,"cacheWrite":0,"totalTokens":16434,"cost":{"input":0.0168575,"output":0.0013650000000000001,"cacheRead":0.0024,"cacheWrite":0,"total":0.020622500000000002}},"stopReason":"toolUse","timestamp":1773107701275}}
{"type":"message","id":"3ffd632a","parentId":"63efd02b","timestamp":"2026-03-10T01:55:17.127Z","message":{"role":"toolResult","toolCallId":"call_glhOTPScELF9F1WUctb5IL5I|fc_05d310e2cecc5a330169af79f96d7c8191bf08a10ed681ae92","toolName":"exec","content":[{"type":"text","text":"Command still running (session swift-sable, pid 6707). Use process (list/poll/log/write/kill/clear/remove) for follow-up."}],"details":{"status":"running","sessionId":"swift-sable","pid":6707,"startedAt":1773107705609,"cwd":"/home/kuhnn/.openclaw/workspace","tail":""},"isError":false,"timestamp":1773107717123}}
{"type":"message","id":"206e7412","parentId":"3ffd632a","timestamp":"2026-03-10T01:55:18.539Z","message":{"role":"assistant","content":[{"type":"toolCall","id":"call_aJKJ0s1GTBh7NrykvstemIe1|fc_05d310e2cecc5a330169af7a061cbc819184e28a23a7bf3880","name":"process","arguments":{"action":"poll","sessionId":"swift-sable","timeout":20000},"partialJson":"{\"action\":\"poll\",\"sessionId\":\"swift-sable\",\"timeout\":20000}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":220,"output":29,"cacheRead":16256,"cacheWrite":0,"totalTokens":16505,"cost":{"input":0.00055,"output":0.000435,"cacheRead":0.004064,"cacheWrite":0,"total":0.005049}},"stopReason":"toolUse","timestamp":1773107717125}}
{"type":"message","id":"a81fcf03","parentId":"206e7412","timestamp":"2026-03-10T01:55:24.327Z","message":{"role":"toolResult","toolCallId":"call_aJKJ0s1GTBh7NrykvstemIe1|fc_05d310e2cecc5a330169af7a061cbc819184e28a23a7bf3880","toolName":"process","content":[{"type":"text","text":"OpenClaw status\n\nOverview\n┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐\n│ Item            │ Value                                                                                             │\n├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤\n│ Dashboard       │ http://127.0.0.1:18789/                                                                           │\n│ OS              │ linux 6.8.0-101-generic (x64) · node 25.6.0                                                       │\n│ Tailscale       │ off                                                                                               │\n│ Channel         │ stable (default)                                                                                  │\n│ Update          │ pnpm · npm latest 2026.3.8                                                                        │\n│ Gateway         │ local · ws://127.0.0.1:18789 (local loopback) · reachable 28ms · auth token · kuhnn-Lenovo-       │\n│                 │ ideapad-710S-13ISK (192.168.155.212) app 2026.3.8 linux 6.8.0-101-generic                         │\n│ Gateway service │ systemd installed · enabled · running (pid 6007, state active)                                    │\n│ Node service    │ systemd not installed                                                                             │\n│ Agents          │ 1 · 1 bootstrap file present · sessions 1 · default main active just now                          │\n│ Memory          │ 0 files · 0 chunks · dirty · sources memory · plugin memory-core · vector unknown · fts ready ·   │\n│                 │ cache on (0)                                                                                      │\n│ Probes          │ skipped (use --deep)                                                                              │\n│ Events          │ none                                                                                              │\n│ Heartbeat       │ 30m (main)                                                                                        │\n│ Sessions        │ 1 active · default gpt-5.4 (200k ctx) · ~/.openclaw/agents/main/sessions/sessions.json            │\n└─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘\n\nSecurity audit\nSummary: 0 critical · 1 warn · 1 info\n  WARN Reverse proxy headers are not trusted\n    gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client c…\n    Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.\nFull report: openclaw security audit\nDeep probe: openclaw security audit --deep\n\nChannels\n┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐\n│ Channel  │ Enabled │ State  │ Detail                                                                                │\n├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤\n│ Telegram │ ON      │ OK     │ token config (8277…tBC4 · len 46) · accounts 1/1                                      │\n└──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘\n\nSessions\n┌─────────────────────────────────────────────────┬────────┬──────────┬──────────────┬────────────────────────────────┐\n│ Key                                             │ Kind   │ Age      │ Model        │ Tokens                         │\n├─────────────────────────────────────────────────┼────────┼──────────┼──────────────┼────────────────────────────────┤\n│ agent:main:main                                 │ direct │ just now │ gpt-5.4      │ 9.4k/272k (3%) · 🗄️ 98% cached │\n└─────────────────────────────────────────────────┴────────┴──────────┴──────────────┴────────────────────────────────┘\n\nFAQ: https://docs.openclaw.ai/faq\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\n\nNext steps:\n  Need to share?      openclaw status --all\n  Need to debug live? openclaw logs --follow\n  Need to test channels? openclaw status --deep\n---\n│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\nService: systemd (enabled)\nFile logs: /tmp/openclaw/openclaw-2026-03-10.log\nCommand: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\nService file: ~/.config/systemd/user/openclaw-gateway.service\nService env: OPENCLAW_GATEWAY_PORT=18789\n\nConfig (cli): ~/.openclaw/openclaw.json\nConfig (service): ~/.openclaw/openclaw.json\n\nGateway: bind=loopback (127.0.0.1), port=18789 (service args)\nProbe target: ws://127.0.0.1:18789\nDashboard: http://127.0.0.1:18789/\nProbe note: Loopback-only gateway; only local clients can connect.\n\nRuntime: running (pid 6007, state active, sub running, last exit 0, reason 0)\nRPC probe: ok\n\nListening: 127.0.0.1:18789\nTroubles: run openclaw status\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\n\nProcess exited with code 0."}],"details":{"status":"completed","sessionId":"swift-sable","exitCode":0,"aggregated":"OpenClaw status\n\nOverview\n┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐\n│ Item            │ Value                                                                                             │\n├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤\n│ Dashboard       │ http://127.0.0.1:18789/                                                                           │\n│ OS              │ linux 6.8.0-101-generic (x64) · node 25.6.0                                                       │\n│ Tailscale       │ off                                                                                               │\n│ Channel         │ stable (default)                                                                                  │\n│ Update          │ pnpm · npm latest 2026.3.8                                                                        │\n│ Gateway         │ local · ws://127.0.0.1:18789 (local loopback) · reachable 28ms · auth token · kuhnn-Lenovo-       │\n│                 │ ideapad-710S-13ISK (192.168.155.212) app 2026.3.8 linux 6.8.0-101-generic                         │\n│ Gateway service │ systemd installed · enabled · running (pid 6007, state active)                                    │\n│ Node service    │ systemd not installed                                                                             │\n│ Agents          │ 1 · 1 bootstrap file present · sessions 1 · default main active just now                          │\n│ Memory          │ 0 files · 0 chunks · dirty · sources memory · plugin memory-core · vector unknown · fts ready ·   │\n│                 │ cache on (0)                                                                                      │\n│ Probes          │ skipped (use --deep)                                                                              │\n│ Events          │ none                                                                                              │\n│ Heartbeat       │ 30m (main)                                                                                        │\n│ Sessions        │ 1 active · default gpt-5.4 (200k ctx) · ~/.openclaw/agents/main/sessions/sessions.json            │\n└─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘\n\nSecurity audit\nSummary: 0 critical · 1 warn · 1 info\n  WARN Reverse proxy headers are not trusted\n    gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client c…\n    Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.\nFull report: openclaw security audit\nDeep probe: openclaw security audit --deep\n\nChannels\n┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐\n│ Channel  │ Enabled │ State  │ Detail                                                                                │\n├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤\n│ Telegram │ ON      │ OK     │ token config (8277…tBC4 · len 46) · accounts 1/1                                      │\n└──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘\n\nSessions\n┌─────────────────────────────────────────────────┬────────┬──────────┬──────────────┬────────────────────────────────┐\n│ Key                                             │ Kind   │ Age      │ Model        │ Tokens                         │\n├─────────────────────────────────────────────────┼────────┼──────────┼──────────────┼────────────────────────────────┤\n│ agent:main:main                                 │ direct │ just now │ gpt-5.4      │ 9.4k/272k (3%) · 🗄️ 98% cached │\n└─────────────────────────────────────────────────┴────────┴──────────┴──────────────┴────────────────────────────────┘\n\nFAQ: https://docs.openclaw.ai/faq\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\n\nNext steps:\n  Need to share?      openclaw status --all\n  Need to debug live? openclaw logs --follow\n  Need to test channels? openclaw status --deep\n---\n│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\nService: systemd (enabled)\nFile logs: /tmp/openclaw/openclaw-2026-03-10.log\nCommand: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\nService file: ~/.config/systemd/user/openclaw-gateway.service\nService env: OPENCLAW_GATEWAY_PORT=18789\n\nConfig (cli): ~/.openclaw/openclaw.json\nConfig (service): ~/.openclaw/openclaw.json\n\nGateway: bind=loopback (127.0.0.1), port=18789 (service args)\nProbe target: ws://127.0.0.1:18789\nDashboard: http://127.0.0.1:18789/\nProbe note: Loopback-only gateway; only local clients can connect.\n\nRuntime: running (pid 6007, state active, sub running, last exit 0, reason 0)\nRPC probe: ok\n\nListening: 127.0.0.1:18789\nTroubles: run openclaw status\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\n","name":"openclaw status"},"isError":false,"timestamp":1773107724307}}
{"type":"message","id":"0f3e1b05","parentId":"a81fcf03","timestamp":"2026-03-10T01:55:28.579Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7a0dfb5481918efc23f3162202a7\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3oOb7b_IA2P6W_Py9MIsR892o9XoCSUyEXoWfSIhKROnJmePDpQjt2egrt6zy6RYbAiMXpK0ITexRja8TkRMsv8WwfJWgKKKNleNlkK1ogoXOQiEDhv3BOfsOzOraq_f-LRzCbbrzWol-PJQr7Tx-vjeJKoW4sJHqd9d3SkkE2rzGYVB7Yzi3yU7hS-gJ9vRtF9-2OtfyfW8e0D6pBYiNtjpUCeV0KHgnec833umd2_XL-3bERGJSfjMdwsHMNeJJlkzaLpoyZb3jGDym326W6BJ_4N2OAfR0ERlaDv07Hgh1jgDFgQBV3vNBW1MIeXXQnYSwexdZcJoUKLy_kbovM097FOm01m0UkPz40ifSGS77khYeL_R1pRPNQ05ZT4NUcyrZzHk1nrW3ZlTR7DNxnihTY019M-uQ35zFzvhJnx6g6yDoAe2kvhcj2BZaO7vkzIvvc_r8veCuw5AK4EJGg6BZZrYK1IX1mDOIksobY7nmgf2riJJaFDM6vE9VSASyfWAubMSClTZBG8i-r8hGuXopxXdUlANCVwiBEkONez1yv7Qva1DimN8S3_8YkfEFhur2xX3eEFCsBs3j2dCWlElBKur4TrBpahjhjh1WAPJYDWo2lLqP85uojF-v3ZQO3HwkPiCULZYC9gkHfN0wpBrEzuGq2AE9KIjCxPwMeZG4jFHmOvjlvHjTIPSi8WE03dnLWDWuUvj7XX6G7pUxXlxKgffhFXb97uzhfjaFCd5sFjjvEbi0FZjc9eUx1qyvZkvEsYno67hbrX8gycA4_9MMQUsiMFcmwXXnZGfwUhpcEuFq3AOwn6SNBzwqaw_VZNhBVudpgVTLysfCo0EBixZg30bjsN-Pu_qURbH4VoD4gDnuFVMAtVMYhS4LxhaGKea7e8thVWiQs5MOrEMQaCiA==\",\"summary\":[]}"},{"type":"text","text":"[[reply_to_current]] OpenClaw web is already up.\n\nOpen this in your browser:\n- http://127.0.0.1:18789/\n\nI checked the local status and the gateway/dashboard is running on port 18789.\n\nIf it doesn’t load:\n- make sure you’re opening it on the same machine running OpenClaw\n- try http://localhost:18789/\n- if needed, restart it with: `openclaw gateway restart`\n\nIf you want, I can also help you expose it beyond local-only access.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7a0ea338819197afbe921ff021c9\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":1346,"output":137,"cacheRead":16384,"cacheWrite":0,"totalTokens":17867,"cost":{"input":0.0033650000000000004,"output":0.002055,"cacheRead":0.004096,"cacheWrite":0,"total":0.009516}},"stopReason":"stop","timestamp":1773107724317}}
{"type":"message","id":"dae52f16","parentId":"0f3e1b05","timestamp":"2026-03-10T01:56:29.486Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-03-10 01:55:24 GMT] Exec completed (swift-sa, code 0) :: bind=loopback (127.0.0.1), port=18789 (service args) Probe target: ws://127.0.0.1:18789 Dashboard: http://127.0.0.1:18789/ Probe note: Loopback-only gateway; only local clients ca…\n\nSender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:56 GMT] openclaw gateway restart"}],"timestamp":1773107789481}}
{"type":"message","id":"f23159f5","parentId":"dae52f16","timestamp":"2026-03-10T01:56:34.117Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7a4f674c8191b95394000fba7be3\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3pR-_Deqieaxn9TOXhV_AT_DzuCx8Bqhj0oYPhXTvGJ3m5dvW44rY4FX5PblJvHsCFkSO8OwKlYgUHPFwFPb-duahmfYwwNYiaABVzi1xNVzj1ycc_SKjiM4EeXNCYNQKGbV1kJb0sexx3g9UpQ2-3q8l0xgCuKPbtCgDuEEaabfvuzrRCUrEm6qRPHJDS9OUS20UFJe25bYkXYo1BxqS1SzG1-XryD9nvU1FGv6XizawmNSy_5tTjEE4R2AXg7PLRYhfcyPzZrBJkJwmeu9FtgrKg7l_164OxWMEJH6IL2UYive2lIA9xo9EI-_J0QZYVDf-PwMd0vQeWzveBOyVGu1K_jNTn6KbSjwkxyqPPSLuhhOU4r6wNxaI8FxSZN6s2ypsaVWrstL490vRwdB1644OXidMU-_jaT26pREZ0s-Xsc-6hlt_PaOPAFus7ed28kv9tNtDUIb_73M0UFUYHmGSVobl2Zkw3v_dVQ1uTUi65dDulPz0MqrQIDvmg8FMvXE-jQV9ezpn51X8kK6FzyRZ5-6_rvbM-fH74qdkiXCWExbfIVjmHId4Y4ClnnlIP3rRPb6YMSpyJrUaa7XgBHNPIs5xBqPcHGTHCEbhSCsIt_nVz3UwT5i5EPTq-tgGRwTmVE005VWm3nojfe6lp82OoqRMEWo8TQCG_t_Rr4zfh9Kld2GKIemxtGjWPn2T8KBeQ4AqOI8kTXahpUbcvoPdtdZanF1l4scqB_UBOuRnukO8Qh7QIghs0FdKvtRb66KvlsvWnQii1o0ujOWTvAXwFugD9hInmltAY7XRIBBvKi20yAX1_NEXiZhO9N4vphS9l_KXfx6AvV1DVlVkLemc417cpwe2Q_XaCrKdQQVgoupRIgRfOVwX2LdTp_vv1DrKvcihPwkrob4pwc8MfZTq1ZxJaRMpOZrcde4zptOtHQx4sGyJUbIA6_7oLBqtD2Y7xWl9D27dFs29_YIpXCO2VYhFlqrZp9-Gs4DybsqMdg7ZZkEQKjCGa3T7_yc6i5BZkcutTi5FSQvI2jCGC24wNfEoywnD42xwXLy3DDX47NQ8supVnOB5xPd3FBl97a3c3qk7ifURyiz3wKWVuIcgYFS1eKbi5AqhfFTrHlhT57TjdFdXHgU6aodC3wMb6O6XyXpNqhkVA7EU0ScgqBiRD7u3ps1e0SbQiEYqG5CLbbcW1wsfMnQolaJx2k7p7QE8ClLXfGtXD0hDQwGZGCUMO3hKRXupsbE4OKXCHYAYaG35HJhBT9j1-p8HoiSi0b\",\"summary\":[]}"},{"type":"text","text":"Restarting the local gateway now.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7a511b408191949f2276657a0bad\",\"phase\":\"commentary\"}"},{"type":"toolCall","id":"call_u5luZMgsZyNQZPxfDsLAFouT|fc_05d310e2cecc5a330169af7a5120f481919a49d09cd49d65de","name":"exec","arguments":{"command":"openclaw gateway restart","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":30},"partialJson":"{\"command\":\"openclaw gateway restart\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":30}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":8471,"output":135,"cacheRead":9472,"cacheWrite":0,"totalTokens":18078,"cost":{"input":0.021177500000000002,"output":0.002025,"cacheRead":0.002368,"cacheWrite":0,"total":0.0255705}},"stopReason":"toolUse","timestamp":1773107789483}}
{"type":"message","id":"37f7d08f","parentId":"f23159f5","timestamp":"2026-03-10T01:56:39.502Z","message":{"role":"toolResult","toolCallId":"call_u5luZMgsZyNQZPxfDsLAFouT|fc_05d310e2cecc5a330169af7a5120f481919a49d09cd49d65de","toolName":"exec","content":[{"type":"text","text":"│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\n\n(Command exited with code 1)"}],"details":{"status":"completed","exitCode":1,"durationMs":5376,"aggregated":"│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\n\n(Command exited with code 1)","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107799496}}
{"type":"message","id":"9a0493c2","parentId":"37f7d08f","timestamp":"2026-03-10T01:58:36.422Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:58 GMT] check the openclaw install I can't open the web openclaw"}],"timestamp":1773107916396}}
{"type":"message","id":"d417bf40","parentId":"9a0493c2","timestamp":"2026-03-10T01:58:45.439Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Diagnosing a potential issue**\n\nI need to diagnose this situation, maybe by using a health check. I should consult the local documentation for OpenClaw's behavior, commands, and architecture, but I wonder if that's necessary right now. It could be useful to run a status check and look at the logs. There's also the possibility that the browser can't open due to not having a desktop. I’ll ask if it’s on the same machine and check the gateway logs and system status.","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7ad04b5881919527796e8aafb945\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3rT9ESy2mEDGBuFEAXb4Nl-6y1FzG0bFERvlvDl_tFWEgRtsAT5rdhJ4zIakUZP2cOu3TpLFDcqZ5455TVECJWJmV7KH-OF9nX6-_wXwhuKvP4IxLwKF0sbwHl6XsG2fgT3MNe3UrRx3GEt8L8bhLzwkaEmlty6DiWUrvYih6VpJN-cOImEXCzg1nJ2yYyHZaHcy84m9qXWYSeAyM_x8eNE_h0jULnmdtEmNHhT4SVyPV3C1CJCVzjowTszHPQN4c8Mfw4l4Bm4TiMHBl5xZLxEpG1FcLfHQxJTyQckiWLB7EDcIEpmlM_RfNoS08GBOztVOGvZEf27tbvr8uYJfQudH40SFpZRaKT-8qKVU09hbtMhPVGBTRBcaLbfkszxTdDCNhEuwG2s_6ifFYvQIBgk1LFCGBbo0pk3We6Q3bNJccWF637rUI3qWBoLqYdLuI4B46IeLZtn3chwNIvJNS3pNdrkx6Be0MAsMegYIv7S2zynnMiIG2-3iWoW-ccFXJPxokIJlV_AAJKX6XO9wrCIyKtGMJ2u_GDfvIHII02OShXX2VNS5PrFXjRVg0lvv9Wi6W2401xx_HfXtKbnCOYpRAKJGapJrXqp_XncDZTgbRm0ekJxycVHyh4lXiYAntwmE9kk_WntkLKgG1sPQSO9n2I3G4lRY2FUrmRrTgABBrHIbNYxw-f7OPCac1hIZm609s-eI53PRug8L6kfb8oIJvA2OxLohsczluBqipNYMeSmbPYpc1wrYr0ocXtLXWzDvwlPfqTIjW6pFuRcwGyKXo0MLBQxqz1HZ1vGzA_Vwtc5OSEhsMwaJZRPN7JmU4uRnacPhLgT52VUxHDcqsXytUBPiyUsL9vPuwxgJNKf8nfXhZx2vI2mVnt4W0IJwiJ8UH71WP1trMPpyDDvwvoONZ_bapQ1oDmSg0Fyaq6xNYtB61Y8-FwZn_xUgE6E9UD8oFxe-JiXQtA8cGKLmvmLkpyH4FSn9TN2erpe7YFQ_lQBwln9OVDbaYEow-JpAUwJr6fNWiYvLkNwfKsHgjS-AtXa-tbub0r7XcAXegSQSU20nOzkwbvoXtkv_VtLqPHg_jB91uNn7myMaSmmt_JZPGDf7tgClFhv24qUn9sxoF0ub8xjqe9V7qwVXfarSYyoPopjOSpgsiTm5rnoJsZoBAYRyE70KBMKGgOW0T9IF95o1afgkq93R-gjeeEYKuoVbfTGrQeWFt90OjRuJkBcIWApB3ZczS78FQQ_VlY_cpLrX_dSkAisHW6_sqNeCN04sSkFLq6lYO34jrFHgxU3BDPssjJEpW6QCFbeDlCc5yk=\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Diagnosing a potential issue**\\n\\nI need to diagnose this situation, maybe by using a health check. I should consult the local documentation for OpenClaw's behavior, commands, and architecture, but I wonder if that's necessary right now. It could be useful to run a status check and look at the logs. There's also the possibility that the browser can't open due to not having a desktop. I’ll ask if it’s on the same machine and check the gateway logs and system status.\"}]}"},{"type":"text","text":"I’m checking the local install and gateway logs to see why the web UI isn’t opening.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7ad3ed6c819196118a3423b1c7f4\",\"phase\":\"commentary\"}"},{"type":"toolCall","id":"call_K5YD5uHVZ9cAdJQlnCJAJBNX|fc_05d310e2cecc5a330169af7ad52c1881918f5a7afc12bbb4bc","name":"exec","arguments":{"command":"openclaw status","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"openclaw status\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"},{"type":"toolCall","id":"call_A5eFXyYWHwFIAGVkmaaYxnng|fc_05d310e2cecc5a330169af7ad52c2481918972d64b894cbf03","name":"exec","arguments":{"command":"openclaw gateway status","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"openclaw gateway status\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"},{"type":"toolCall","id":"call_DNMSlD3PJ3HNpQbc0lUEevMv|fc_05d310e2cecc5a330169af7ad52c288191a39ceb6445d12e9d","name":"exec","arguments":{"command":"tail -n 80 /tmp/openclaw/openclaw-2026-03-10.log","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"tail -n 80 /tmp/openclaw/openclaw-2026-03-10.log\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":373,"output":270,"cacheRead":17920,"cacheWrite":0,"totalTokens":18563,"cost":{"input":0.0009325000000000001,"output":0.00405,"cacheRead":0.00448,"cacheWrite":0,"total":0.009462499999999999}},"stopReason":"toolUse","timestamp":1773107916408}}
{"type":"message","id":"700953cd","parentId":"d417bf40","timestamp":"2026-03-10T01:58:55.505Z","message":{"role":"toolResult","toolCallId":"call_K5YD5uHVZ9cAdJQlnCJAJBNX|fc_05d310e2cecc5a330169af7ad52c1881918f5a7afc12bbb4bc","toolName":"exec","content":[{"type":"text","text":"Command still running (session lucky-rook, pid 6985). Use process (list/poll/log/write/kill/clear/remove) for follow-up."}],"details":{"status":"running","sessionId":"lucky-rook","pid":6985,"startedAt":1773107925462,"cwd":"/home/kuhnn/.openclaw/workspace","tail":""},"isError":false,"timestamp":1773107935484}}
{"type":"message","id":"9a7062bc","parentId":"700953cd","timestamp":"2026-03-10T01:59:05.183Z","message":{"role":"toolResult","toolCallId":"call_A5eFXyYWHwFIAGVkmaaYxnng|fc_05d310e2cecc5a330169af7ad52c2481918972d64b894cbf03","toolName":"exec","content":[{"type":"text","text":"│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\nService: systemd (enabled)\nFile logs: /tmp/openclaw/openclaw-2026-03-10.log\nCommand: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\nService file: ~/.config/systemd/user/openclaw-gateway.service\nService env: OPENCLAW_GATEWAY_PORT=18789\n\nConfig (cli): ~/.openclaw/openclaw.json\nConfig (service): ~/.openclaw/openclaw.json\n\nGateway: bind=loopback (127.0.0.1), port=18789 (service args)\nProbe target: ws://127.0.0.1:18789\nDashboard: http://127.0.0.1:18789/\nProbe note: Loopback-only gateway; only local clients can connect.\n\nRuntime: running (pid 6933, state active, sub running, last exit 0, reason 0)\nRPC probe: ok\n\nListening: 127.0.0.1:18789\nTroubles: run openclaw status\nTroubleshooting: https://docs.openclaw.ai/troubleshooting"}],"details":{"status":"completed","exitCode":0,"durationMs":9681,"aggregated":"│\n◇  Doctor warnings ────────────────────────────────────────────────────────╮\n│                                                                          │\n│  - channels.telegram.groupPolicy is \"allowlist\" but groupAllowFrom (and  │\n│    allowFrom) is empty — all group messages will be silently dropped.    │\n│    Add sender IDs to channels.telegram.groupAllowFrom or                 │\n│    channels.telegram.allowFrom, or set groupPolicy to \"open\".            │\n│                                                                          │\n├──────────────────────────────────────────────────────────────────────────╯\nService: systemd (enabled)\nFile logs: /tmp/openclaw/openclaw-2026-03-10.log\nCommand: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\nService file: ~/.config/systemd/user/openclaw-gateway.service\nService env: OPENCLAW_GATEWAY_PORT=18789\n\nConfig (cli): ~/.openclaw/openclaw.json\nConfig (service): ~/.openclaw/openclaw.json\n\nGateway: bind=loopback (127.0.0.1), port=18789 (service args)\nProbe target: ws://127.0.0.1:18789\nDashboard: http://127.0.0.1:18789/\nProbe note: Loopback-only gateway; only local clients can connect.\n\nRuntime: running (pid 6933, state active, sub running, last exit 0, reason 0)\nRPC probe: ok\n\nListening: 127.0.0.1:18789\nTroubles: run openclaw status\nTroubleshooting: https://docs.openclaw.ai/troubleshooting","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107945167}}
{"type":"message","id":"169b72b0","parentId":"9a7062bc","timestamp":"2026-03-10T01:59:05.227Z","message":{"role":"toolResult","toolCallId":"call_DNMSlD3PJ3HNpQbc0lUEevMv|fc_05d310e2cecc5a330169af7ad52c288191a39ceb6445d12e9d","toolName":"exec","content":[{"type":"text","text":"{\"0\":\"Dashboard: http://127.0.0.1:18789/\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.005Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.005+00:00\"}\n{\"0\":\"Probe note: Loopback-only gateway; only local clients can connect.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.006Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.006+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.007Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.007+00:00\"}\n{\"0\":\"Runtime: running (pid 6007, state active, sub running, last exit 0, reason 0)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.008Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.009+00:00\"}\n{\"0\":\"RPC probe: ok\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.009Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.010+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.010Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.011+00:00\"}\n{\"0\":\"Listening: 127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.012Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.012+00:00\"}\n{\"0\":\"Troubles: run openclaw status\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.013Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.013+00:00\"}\n{\"0\":\"Troubleshooting: https://docs.openclaw.ai/troubleshooting\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.014Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.015+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"unauthorized conn=a0113e1c-fdfd-4543-a8fc-ba7f36548097 remote=::1 client=openclaw-control-ui webchat v2026.3.8 reason=token_missing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:55:38.683Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:55:38.684+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":{\"cause\":\"unauthorized\",\"handshake\":\"failed\",\"durationMs\":84,\"lastFrameType\":\"req\",\"lastFrameMethod\":\"connect\",\"lastFrameId\":\"814a70c5-abae-4536-9c3c-6d8029569c32\",\"host\":\"localhost:18789\",\"origin\":\"http://localhost:18789\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36\",\"authMode\":\"token\",\"authProvided\":\"none\",\"authReason\":\"token_missing\",\"allowTailscale\":false,\"client\":\"openclaw-control-ui\",\"mode\":\"webchat\",\"version\":\"2026.3.8\"},\"2\":\"closed before connect conn=a0113e1c-fdfd-4543-a8fc-ba7f36548097 remote=::1 fwd=n/a origin=http://localhost:18789 host=localhost:18789 ua=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 code=1008 reason=unauthorized: gateway token missing (open the dashboard URL and paste the token in Control UI settings)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:55:38.694Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:55:38.695+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"1\":\"tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:29.456Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:29.458+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"signal SIGTERM received\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.378Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.379+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"received SIGTERM; shutting down\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.383Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.385+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"1\":\"gmail watcher stopped\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.482Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.482+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"1\":\"canvas host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/kuhnn/.openclaw/canvas)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.072Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.076+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"1\":{\"intervalMs\":1800000},\"2\":\"heartbeat: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.206Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.209+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"1\":\"started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.215Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.224+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"agent model: openai-codex/gpt-5.4\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.233Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.235+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"listening on ws://127.0.0.1:18789, ws://[::1]:18789 (PID 6852)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.237Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.238+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"log file: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.241Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.242+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"1\":\"Browser control listening on http://127.0.0.1:18791/ (auth=token)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.340Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.341+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: boot-md -> gateway:startup\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.401Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.403+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: bootstrap-extra-files -> agent:bootstrap\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.445Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.446+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: command-logger -> command\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.473Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.474+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"jobCount\":0,\"enabledCount\":0,\"withNextRun\":0},\"2\":\"cron: armTimer skipped - no jobs with nextRunAtMs\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.476Z\",\"logLevelId\":2,\"logLevelName\":\"DEBUG\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6320\",\"fileColumn\":\"18\",\"fileLine\":\"6320\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320\",\"method\":\"armTimer\"}},\"time\":\"2026-03-10T01:56:53.476+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"enabled\":true,\"jobs\":0,\"nextWakeAtMs\":null},\"2\":\"cron: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.477Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6852\",\"fileColumn\":\"18\",\"fileLine\":\"6852\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852\"}},\"time\":\"2026-03-10T01:56:53.478+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: session-memory -> command:new, command:reset\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.503Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.504+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"1\":\"loaded 4 internal hook handlers\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.507Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.508+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"1\":\"[default] starting provider (@XCao_bot)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.594Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.594+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"autoSelectFamily=true (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.609Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.611+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"global undici dispatcher autoSelectFamily=true\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.618Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.619+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"dnsResultOrder=ipv4first (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.622Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.623+00:00\"}\n{\"0\":\"bonjour: advertised gateway fqdn=kuhnn-Lenovo-ideapad-710S-13ISK (OpenClaw)._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:56:54.385Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716:16\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:7716\",\"fileColumn\":\"16\",\"fileLine\":\"7716\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716\"}},\"time\":\"2026-03-10T01:56:54.387+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"signal SIGTERM received\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.810Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.811+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"received SIGTERM; shutting down\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.814Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.815+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"1\":\"gmail watcher stopped\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.898Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.899+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"1\":\"canvas host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/kuhnn/.openclaw/canvas)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:37.777Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:37.785+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"1\":{\"intervalMs\":1800000},\"2\":\"heartbeat: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:37.981Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:37.993+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"1\":\"started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.006Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.023+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"agent model: openai-codex/gpt-5.4\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.041Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.043+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"listening on ws://127.0.0.1:18789, ws://[::1]:18789 (PID 6933)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.048Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.050+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"log file: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.060Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.062+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"1\":\"Browser control listening on http://127.0.0.1:18791/ (auth=token)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.280Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.284+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: boot-md -> gateway:startup\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.880Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.881+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: bootstrap-extra-files -> agent:bootstrap\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.962Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.963+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: command-logger -> command\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.989Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.990+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"jobCount\":0,\"enabledCount\":0,\"withNextRun\":0},\"2\":\"cron: armTimer skipped - no jobs with nextRunAtMs\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.994Z\",\"logLevelId\":2,\"logLevelName\":\"DEBUG\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6320\",\"fileColumn\":\"18\",\"fileLine\":\"6320\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320\",\"method\":\"armTimer\"}},\"time\":\"2026-03-10T01:57:39.994+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"enabled\":true,\"jobs\":0,\"nextWakeAtMs\":null},\"2\":\"cron: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.995Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6852\",\"fileColumn\":\"18\",\"fileLine\":\"6852\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852\"}},\"time\":\"2026-03-10T01:57:39.996+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: session-memory -> command:new, command:reset\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.042Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.043+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"1\":\"loaded 4 internal hook handlers\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.049Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.053+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"1\":\"[default] starting provider (@XCao_bot)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.124Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.125+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"autoSelectFamily=true (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.143Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.145+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"global undici dispatcher autoSelectFamily=true\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.151Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.153+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"dnsResultOrder=ipv4first (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.157Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.158+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ chat.history 384ms conn=4f549bd2…1b68 id=cba71402…1a1d\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.486Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.487+00:00\"}\n{\"0\":\"bonjour: advertised gateway fqdn=kuhnn-Lenovo-ideapad-710S-13ISK (OpenClaw)._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:57:40.722Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716:16\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:7716\",\"fileColumn\":\"16\",\"fileLine\":\"7716\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716\"}},\"time\":\"2026-03-10T01:57:40.724+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"1\":\"tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:36.327Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:36.327+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ config.get 3552ms conn=11476572…2a32 id=19568ad3…2808\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:59.186Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:59.186+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ status 3576ms conn=11476572…2a32 id=a6e3a216…11f9\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:59.201Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:59.201+00:00\"}\n{\"0\":\"Service: systemd (enabled)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.003Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.010+00:00\"}\n{\"0\":\"File logs: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.026Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.026+00:00\"}\n{\"0\":\"Command: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.027Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.028+00:00\"}\n{\"0\":\"Service file: ~/.config/systemd/user/openclaw-gateway.service\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.029Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.029+00:00\"}\n{\"0\":\"Service env: OPENCLAW_GATEWAY_PORT=18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.030Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.031+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.032Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.032+00:00\"}\n{\"0\":\"Config (cli): ~/.openclaw/openclaw.json\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.033Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.033+00:00\"}\n{\"0\":\"Config (service): ~/.openclaw/openclaw.json\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.034Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.034+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.035Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.036+00:00\"}\n{\"0\":\"Gateway: bind=loopback (127.0.0.1), port=18789 (service args)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.038Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.038+00:00\"}\n{\"0\":\"Probe target: ws://127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.042Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.043+00:00\"}\n{\"0\":\"Dashboard: http://127.0.0.1:18789/\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.045Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.045+00:00\"}\n{\"0\":\"Probe note: Loopback-only gateway; only local clients can connect.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.046Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.047+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.048Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.048+00:00\"}\n{\"0\":\"Runtime: running (pid 6933, state active, sub running, last exit 0, reason 0)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.050Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.050+00:00\"}\n{\"0\":\"RPC probe: ok\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.051Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.052+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.053Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.053+00:00\"}\n{\"0\":\"Listening: 127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.058Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.059+00:00\"}\n{\"0\":\"Troubles: run openclaw status\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.060Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.061+00:00\"}\n{\"0\":\"Troubleshooting: https://docs.openclaw.ai/troubleshooting\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.062Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.062+00:00\"}"}],"details":{"status":"completed","exitCode":0,"durationMs":45,"aggregated":"{\"0\":\"Dashboard: http://127.0.0.1:18789/\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.005Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.005+00:00\"}\n{\"0\":\"Probe note: Loopback-only gateway; only local clients can connect.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.006Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.006+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.007Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.007+00:00\"}\n{\"0\":\"Runtime: running (pid 6007, state active, sub running, last exit 0, reason 0)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.008Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.009+00:00\"}\n{\"0\":\"RPC probe: ok\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.009Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.010+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.010Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.011+00:00\"}\n{\"0\":\"Listening: 127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.012Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.012+00:00\"}\n{\"0\":\"Troubles: run openclaw status\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.013Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.013+00:00\"}\n{\"0\":\"Troubleshooting: https://docs.openclaw.ai/troubleshooting\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:55:24.014Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:55:24.015+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"unauthorized conn=a0113e1c-fdfd-4543-a8fc-ba7f36548097 remote=::1 client=openclaw-control-ui webchat v2026.3.8 reason=token_missing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:55:38.683Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:55:38.684+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":{\"cause\":\"unauthorized\",\"handshake\":\"failed\",\"durationMs\":84,\"lastFrameType\":\"req\",\"lastFrameMethod\":\"connect\",\"lastFrameId\":\"814a70c5-abae-4536-9c3c-6d8029569c32\",\"host\":\"localhost:18789\",\"origin\":\"http://localhost:18789\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36\",\"authMode\":\"token\",\"authProvided\":\"none\",\"authReason\":\"token_missing\",\"allowTailscale\":false,\"client\":\"openclaw-control-ui\",\"mode\":\"webchat\",\"version\":\"2026.3.8\"},\"2\":\"closed before connect conn=a0113e1c-fdfd-4543-a8fc-ba7f36548097 remote=::1 fwd=n/a origin=http://localhost:18789 host=localhost:18789 ua=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 code=1008 reason=unauthorized: gateway token missing (open the dashboard URL and paste the token in Control UI settings)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:55:38.694Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:55:38.695+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"1\":\"tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:29.456Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:29.458+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"signal SIGTERM received\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.378Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.379+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"received SIGTERM; shutting down\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.383Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.385+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"1\":\"gmail watcher stopped\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:39.482Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:39.482+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"1\":\"canvas host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/kuhnn/.openclaw/canvas)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.072Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.076+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"1\":{\"intervalMs\":1800000},\"2\":\"heartbeat: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.206Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.209+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"1\":\"started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.215Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.224+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"agent model: openai-codex/gpt-5.4\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.233Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.235+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"listening on ws://127.0.0.1:18789, ws://[::1]:18789 (PID 6852)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.237Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.238+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"log file: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.241Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.242+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"1\":\"Browser control listening on http://127.0.0.1:18791/ (auth=token)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:52.340Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:52.341+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: boot-md -> gateway:startup\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.401Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.403+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: bootstrap-extra-files -> agent:bootstrap\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.445Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.446+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: command-logger -> command\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.473Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.474+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"jobCount\":0,\"enabledCount\":0,\"withNextRun\":0},\"2\":\"cron: armTimer skipped - no jobs with nextRunAtMs\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.476Z\",\"logLevelId\":2,\"logLevelName\":\"DEBUG\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6320\",\"fileColumn\":\"18\",\"fileLine\":\"6320\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320\",\"method\":\"armTimer\"}},\"time\":\"2026-03-10T01:56:53.476+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"enabled\":true,\"jobs\":0,\"nextWakeAtMs\":null},\"2\":\"cron: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.477Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6852\",\"fileColumn\":\"18\",\"fileLine\":\"6852\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852\"}},\"time\":\"2026-03-10T01:56:53.478+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: session-memory -> command:new, command:reset\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.503Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.504+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"1\":\"loaded 4 internal hook handlers\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.507Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.508+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"1\":\"[default] starting provider (@XCao_bot)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.594Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.594+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"autoSelectFamily=true (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.609Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.611+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"global undici dispatcher autoSelectFamily=true\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.618Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.619+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"dnsResultOrder=ipv4first (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:56:53.622Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:56:53.623+00:00\"}\n{\"0\":\"bonjour: advertised gateway fqdn=kuhnn-Lenovo-ideapad-710S-13ISK (OpenClaw)._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:56:54.385Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716:16\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:7716\",\"fileColumn\":\"16\",\"fileLine\":\"7716\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716\"}},\"time\":\"2026-03-10T01:56:54.387+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"signal SIGTERM received\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.810Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.811+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"received SIGTERM; shutting down\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.814Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.815+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"1\":\"gmail watcher stopped\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gmail-watcher\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:23.898Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:23.899+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"1\":\"canvas host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/kuhnn/.openclaw/canvas)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/canvas\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:37.777Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:37.785+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"1\":{\"intervalMs\":1800000},\"2\":\"heartbeat: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/heartbeat\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:37.981Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019:51\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1019\",\"fileColumn\":\"51\",\"fileLine\":\"1019\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1019\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:37.993+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"1\":\"started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/health-monitor\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.006Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.023+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"agent model: openai-codex/gpt-5.4\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.041Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.043+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"listening on ws://127.0.0.1:18789, ws://[::1]:18789 (PID 6933)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.048Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.050+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"1\":\"log file: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.060Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.062+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"1\":\"Browser control listening on http://127.0.0.1:18791/ (auth=token)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"browser/server\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:38.280Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:38.284+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: boot-md -> gateway:startup\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.880Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.881+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: bootstrap-extra-files -> agent:bootstrap\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.962Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.963+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: command-logger -> command\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.989Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:39.990+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"jobCount\":0,\"enabledCount\":0,\"withNextRun\":0},\"2\":\"cron: armTimer skipped - no jobs with nextRunAtMs\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.994Z\",\"logLevelId\":2,\"logLevelName\":\"DEBUG\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6320\",\"fileColumn\":\"18\",\"fileLine\":\"6320\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6320\",\"method\":\"armTimer\"}},\"time\":\"2026-03-10T01:57:39.994+00:00\"}\n{\"0\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"1\":{\"enabled\":true,\"jobs\":0,\"nextWakeAtMs\":null},\"2\":\"cron: started\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"module\\\":\\\"cron\\\",\\\"storePath\\\":\\\"/home/kuhnn/.openclaw/cron/jobs.json\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:39.995Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852:18\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:6852\",\"fileColumn\":\"18\",\"fileLine\":\"6852\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:6852\"}},\"time\":\"2026-03-10T01:57:39.996+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"1\":\"Registered hook: session-memory -> command:new, command:reset\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"hooks:loader\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.042Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.043+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"1\":\"loaded 4 internal hook handlers\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/hooks\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.049Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.053+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"1\":\"[default] starting provider (@XCao_bot)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/channels/telegram\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.124Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.125+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"autoSelectFamily=true (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.143Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.145+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"global undici dispatcher autoSelectFamily=true\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.151Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.153+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"1\":\"dnsResultOrder=ipv4first (default-node22)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"telegram/network\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.157Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.158+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ chat.history 384ms conn=4f549bd2…1b68 id=cba71402…1a1d\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:57:40.486Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:57:40.487+00:00\"}\n{\"0\":\"bonjour: advertised gateway fqdn=kuhnn-Lenovo-ideapad-710S-13ISK (OpenClaw)._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:57:40.722Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716:16\",\"fileName\":\"gateway-cli-C2ZZYgwu.js\",\"fileNameWithLine\":\"gateway-cli-C2ZZYgwu.js:7716\",\"fileColumn\":\"16\",\"fileLine\":\"7716\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/gateway-cli-C2ZZYgwu.js:7716\"}},\"time\":\"2026-03-10T01:57:40.724+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"1\":\"tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"tools\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:36.327Z\",\"logLevelId\":4,\"logLevelName\":\"WARN\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:36.327+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ config.get 3552ms conn=11476572…2a32 id=19568ad3…2808\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:59.186Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:59.186+00:00\"}\n{\"0\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"1\":\"⇄ res ✓ status 3576ms conn=11476572…2a32 id=a6e3a216…11f9\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"{\\\"subsystem\\\":\\\"gateway/ws\\\"}\",\"parentNames\":[\"openclaw\"],\"date\":\"2026-03-10T01:58:59.201Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020:14\",\"fileName\":\"subsystem-4K-e3L3i.js\",\"fileNameWithLine\":\"subsystem-4K-e3L3i.js:1020\",\"fileColumn\":\"14\",\"fileLine\":\"1020\",\"filePath\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js\",\"filePathWithLine\":\".npm-global/lib/node_modules/openclaw/dist/subsystem-4K-e3L3i.js:1020\",\"method\":\"logToFile\"}},\"time\":\"2026-03-10T01:58:59.201+00:00\"}\n{\"0\":\"Service: systemd (enabled)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.003Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.010+00:00\"}\n{\"0\":\"File logs: /tmp/openclaw/openclaw-2026-03-10.log\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.026Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.026+00:00\"}\n{\"0\":\"Command: /home/linuxbrew/.linuxbrew/opt/node/bin/node /home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.027Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.028+00:00\"}\n{\"0\":\"Service file: ~/.config/systemd/user/openclaw-gateway.service\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.029Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.029+00:00\"}\n{\"0\":\"Service env: OPENCLAW_GATEWAY_PORT=18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.030Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.031+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.032Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.032+00:00\"}\n{\"0\":\"Config (cli): ~/.openclaw/openclaw.json\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.033Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.033+00:00\"}\n{\"0\":\"Config (service): ~/.openclaw/openclaw.json\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.034Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.034+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.035Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.036+00:00\"}\n{\"0\":\"Gateway: bind=loopback (127.0.0.1), port=18789 (service args)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.038Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.038+00:00\"}\n{\"0\":\"Probe target: ws://127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.042Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.043+00:00\"}\n{\"0\":\"Dashboard: http://127.0.0.1:18789/\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.045Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.045+00:00\"}\n{\"0\":\"Probe note: Loopback-only gateway; only local clients can connect.\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.046Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.047+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.048Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.048+00:00\"}\n{\"0\":\"Runtime: running (pid 6933, state active, sub running, last exit 0, reason 0)\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.050Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.050+00:00\"}\n{\"0\":\"RPC probe: ok\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.051Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.052+00:00\"}\n{\"0\":\"\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.053Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.053+00:00\"}\n{\"0\":\"Listening: 127.0.0.1:18789\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.058Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.059+00:00\"}\n{\"0\":\"Troubles: run openclaw status\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.060Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.061+00:00\"}\n{\"0\":\"Troubleshooting: https://docs.openclaw.ai/troubleshooting\",\"_meta\":{\"runtime\":\"node\",\"runtimeVersion\":\"25.6.0\",\"hostname\":\"unknown\",\"name\":\"openclaw\",\"date\":\"2026-03-10T01:59:05.062Z\",\"logLevelId\":3,\"logLevelName\":\"INFO\",\"path\":{\"fullFilePath\":\"file:///home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944:46\",\"fileName\":\"subsystem-kzdGVyce.js\",\"fileNameWithLine\":\"subsystem-kzdGVyce.js:944\",\"fileColumn\":\"46\",\"fileLine\":\"944\",\"filePath\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js\",\"filePathWithLine\":\"/home/kuhnn/.npm-global/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js:944\",\"method\":\"console.log\"}},\"time\":\"2026-03-10T01:59:05.062+00:00\"}","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107945215}}
{"type":"message","id":"2159397f","parentId":"169b72b0","timestamp":"2026-03-10T01:59:14.873Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Diagnosing connection issues**\n\nI need to provide a concise diagnosis: the installation is fine, and the gateway is running. The likely issue is that the dashboard opens, but there’s a missing WebSocket authentication in the Control UI. The user can’t access the web. Looking at the logs, it shows an unauthorized connection from the browser due to a missing token. I should instruct the user to paste the gateway token in the Control UI settings and suggest checking the configuration for the token location.","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7aec370481919ab9072f3071e59f\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3rwJvMZkJDrJmCJktqPSz0kV1XrO3hcm5DiOyNRAX0VuRnm-bB74UvAg4T1AaHxLEYZRlzxiE54LAukSYR25asmoniUATVyf6Fhb7VxXTacHXZ83A5Rry5RV-8GGcvGYBjDypoexiGr0KmF8EncRzEibsfg22pzpzX_9-XZrzd54D6Q5gEkOngPMvL7pkj8lEvQD9EdrP4nD2lhA9He-65lZzAKNwwZgU8gFv9Vj04V3pITaGe0Y8vXfuQtLKkTk9UbPNonvN4KiWs2s7R3bWTCKHtD2O3Q9pMFNrQ5RIhUghM9RNTvswh0u_JZorvjJc6soAS50ujoTEQzROjYOlSjvBqo14xor2DSbVtL_c9qORvtuMsZl1U-i-J1H7r1p-jAebk3-3SJC0yVsvS3vqlGfSTWUKH-7xxWUr51w_WAKT2gHVS2omc7ZROzypBR3CQBOhMxcqLexAYkGqZ128_rEOH4Y97Br6eibVhjkdHWEj6V3apE9MxluGdOWIbpsMbgXnLyEOzQGv1q5IfCCbyzBT7i1xnbmiAzfsa2tOfZk67zrOcpOvMgGZdv7fiA4ssYwhsa7OI32rBA4Shw_eIIi0LbumIAe9LmF9rfPUNQC_u0tZzy0haBj2G8-GkFcx7xuWmwUjjjJqy4Sa7_INdHLzPjHXLMV3ILkYazlXvM7nofPwNpxKRfAx4XTlBh-IPHSvP8t5GlEymgR6Z9PyxSFhaQz5mtVXYSE61_Pvf6S0hT5XEcErSkqx7lLPQcL_4iHnbQOEUhxSSF_maU-H-00VatmBDQT_EQC_AV9YlJqwUI_D4APE5D_3iHcLYpBzaBW6lE3HUAlX3PAkUQHnJPvOr1hlfDGKL1WC-AJoeL6B2n23nm3UtK-6H1wV8jD6zUARJ2v-wq80NfUQGnCrueLF-PuoOHrYu47sQy7hfY1e8dzgdaN-xe5eT4RhvCrqwnRUFh5lDjFCYSmkMK5I1gleKWxAcnSV3Ym-52purDPb_oYtRDCY6ehPMxGaThmQpJv_9B_ErKOgqwmtkIshJp8wQqjlpYWvu4HNEjFH1Jh-7brpDNN_dgTRCujCpL76MdJ-3H-mdeil3ADwt4F-AuccO5CSV8p7PUT3Sr-wq8_fsgtgYe0uTffAm1VF0d0RwCNhGGbQnpgfKPHsY2l8P9eI9OpdB0Lci0mr7PUTrZIazvyWuOW2rpma0F3-z_rjQDn2MWkiThHkgbwxhj-ZPljh1F-tmMbWJiaTM584riB0sIwGniydlSQCwxtRdF_8VgqhHL4QKZ98ooGQeUdIbyxnXxPeNJBCETe5Y_KPkeACl7QUw8Y1BMmpTcGej-VqJJC2gH61rYP0vSqWJ2c4SRYsX2-RsjMfQSl4j9f9Asqhjyhu24YodJEqnI__jokgdQ1Tx0Rn_5-Rpfm82jfqfVWWz80k7t4M0Y2AYTVuKKVMnWmBnJOPWt7p-02BeB780EtukLRVK9QfPWOr3cS6zysnptDanCHnqrPg75KnRfPskm1t3mCm9c1Yfpykbe_cdEfvb9b12utNL0zxvFlXFCzcROODjpGLlk88COlK7BDkt_ll_BOog_c3zaTKhPe3kL\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Diagnosing connection issues**\\n\\nI need to provide a concise diagnosis: the installation is fine, and the gateway is running. The likely issue is that the dashboard opens, but there’s a missing WebSocket authentication in the Control UI. The user can’t access the web. Looking at the logs, it shows an unauthorized connection from the browser due to a missing token. I should instruct the user to paste the gateway token in the Control UI settings and suggest checking the configuration for the token location.\"}]}"},{"type":"text","text":"[[reply_to_current]] I checked it — the OpenClaw install itself looks fine.\n\nWhat’s working:\n- gateway service is running\n- dashboard is serving at `http://127.0.0.1:18789/`\n- it’s listening on `127.0.0.1:18789`\n\nWhat’s actually failing:\n- the browser/UI is trying to connect without the gateway token\n- the log shows: **“unauthorized: gateway token missing”**\n\nSo this is probably **not** “OpenClaw isn’t running” — it’s **the web UI not authenticated to the gateway**.\n\nTry this:\n1. Open `http://127.0.0.1:18789/`\n2. In the Control UI settings, paste your **gateway token**\n3. Reconnect\n\nAlso:\n- this gateway is **loopback-only**, so it only works from the same machine\n- if you’re trying from another device, it won’t open unless you reconfigure exposure\n\nIf you want, I can help with the next step:\n- **find your gateway token**, or\n- **reconfigure OpenClaw so the web UI is reachable from another machine**","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7af0e0088191a63f49120b35bff8\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":21415,"output":364,"cacheRead":18432,"cacheWrite":0,"totalTokens":40211,"cost":{"input":0.0535375,"output":0.0054600000000000004,"cacheRead":0.004608,"cacheWrite":0,"total":0.0636055}},"stopReason":"stop","timestamp":1773107945219}}
{"type":"message","id":"456af7bb","parentId":"2159397f","timestamp":"2026-03-10T01:59:39.565Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-03-10 01:58:59 GMT] Exec completed (lucky-ro, code 0) :: │ 18k/272k (7%) · 🗄️ 92% cached │ └──────────────────────────────────────────────────┴────────┴──────────┴──────────────┴───────────────────────────────┘ FAQ: https://docs.opencl…\n\nSender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 01:59 GMT] gateway token missing"}],"timestamp":1773107979554}}
{"type":"message","id":"ba7def76","parentId":"456af7bb","timestamp":"2026-03-10T01:59:46.528Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Exploring token retrieval**\n\nI need to address the user's issue about finding a token. Maybe I should check the documentation to gain some clarity. I could try accessing the openclaw docs or the gateway status, but it doesn't show the token. I might also want to check the config file's location. If I use the command exec rg token in /.openclaw, that might help. I'll also look into inspecting the docs for the auth token, using exec rg \"gateway token.\"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7b0e596c819190224e93669286ab\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3sSeGs4LJjFqYD03c8PkbHNmeskTzTFbLAdXQDmtpM-YmZR1wtoXtyXoURfCG9K_Koko1qS4UjiaJ5RlBUqH15Nx45BtjaRKp0b75CrzY6JsebKviEUGc1JErAzA1E5Q722zo0ZHoNbtvckIXm2GXlMQvpOpz2328uORfgmnfm9-pxkpDheWq5_toclC6Z_9qQc5o-ny_Q6H0H40vAo5cF0XFS8AJGpMo-Cnt8SANa-ksIzMaM7mOedCdO4rDuMbcBp8APtSdLr_9qmbm-qQD2JlgKTPFD6krkTTd3gt7vH4ZE5Syk37-RklDYz5QyzmwgGZ6byCZjvLoKyDpBbA00uXQgSdB7V7Dp_4KAHHTwkFDwfmCq9x90Z_aBofUWvNA9WLJFBExhb2apDoo3Gtl1d71F3WYbI7fvpNuQs1n5HiOql9w94Bkwhuvx4gHNljM56x3Rl1pmstL2JvTXqJAR8xG8hRhdkl3m1q4WNEm6Q-95UEBF2WW3U2Ihsjg6t0r17Bua28UcnBfXBO0muqHiOp0CMRD35uqrumE3oMWB6D6g2Rg8-Q3mia0sa-KcY7xQaU8IWcRPaksAZ8WTBXaJzBvMlBNPSvMjl35as-xqwrPtjXX4yo6EVw2jFYrcYxu8nm12RT65GJ7nu-k4jUkrLqd6NAa75RH5HZoP7DokTHonqRhpGVGSJVlHZ1ERkwNhnWcz-FFCVOv8ZxItNYjMg-eGueGF9a4pTGeuO3io7Zb8ReR-ftDU16hok8ZxKyKKyZnuTIIXP03ltclSnRICXwE0auivvHa36j3GX7sm_Cs4newBdvU7WLd9boizBDsUJDQEP37ESuo8T1gLaayMfrqAI2Ndn8y78QCMf3wXlw-YqlK1QcJL9FgVoXuzdaXYAA3N6qBisDhnThq3yLJNle6qvJTTZc0B9ZZn3jdmi9RKbtoiOO32lcmM2L4lP92_zVBnCIBC3HIGpDDZZFY_zah_9Owfd6lSOAKX4NDXFFEkW-XFk7H4axCHkPUlelGGkWC3halOfZipDamYJnZ6q4le7lz50RVNIAqkQv4t1i9duplMMNxjiKWV31X-oZDdk4AG6Qll56MI9N_1iAa2-jGD4vMwVhXGhLhmfuc-9gaCueDKWqtR0duMTABc9qqb1l_3_ug5f6yJ0bKS4okEbbB_HZ8dOGDgf0SFIm5pI7Psx5hs-pewhIcQSofwWL6vIqhLmMmVSNNZmGXGQGJ7ubFStwvODa0ajWBF3X98z9xAkk5NMesdHj-CjDondvuqe7qzBSVN3enI14il57B0LNfIgp3aKF1qUPbB8qXdug_ggnNWwzGoBibfxhpPeQUk0\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Exploring token retrieval**\\n\\nI need to address the user's issue about finding a token. Maybe I should check the documentation to gain some clarity. I could try accessing the openclaw docs or the gateway status, but it doesn't show the token. I might also want to check the config file's location. If I use the command exec rg token in /.openclaw, that might help. I'll also look into inspecting the docs for the auth token, using exec rg \\\"gateway token.\\\"\"}]}"},{"type":"text","text":"I’m checking the local docs for the quickest way to retrieve or set the gateway token.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7b121c788191ad72713bb3daf237\",\"phase\":\"commentary\"}"},{"type":"toolCall","id":"call_xrhDeVTVT9bczxxTb8Wyj4Ia|fc_05d310e2cecc5a330169af7b1225488191ba6c56dd85d07301","name":"exec","arguments":{"command":"rg -n \"gateway token|auth token|Control UI settings|token missing|gateway.auth|gatewayToken|token\" /home/kuhnn/.npm-global/lib/node_modules/openclaw/docs /home/kuhnn/.npm-global/lib/node_modules/openclaw -g '*.md' | head -60","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"rg -n \\\"gateway token|auth token|Control UI settings|token missing|gateway.auth|gatewayToken|token\\\" /home/kuhnn/.npm-global/lib/node_modules/openclaw/docs /home/kuhnn/.npm-global/lib/node_modules/openclaw -g '*.md' | head -60\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":22314,"output":226,"cacheRead":17792,"cacheWrite":0,"totalTokens":40332,"cost":{"input":0.055785,"output":0.0033900000000000002,"cacheRead":0.004448,"cacheWrite":0,"total":0.063623}},"stopReason":"toolUse","timestamp":1773107979556}}
{"type":"message","id":"17823db6","parentId":"ba7def76","timestamp":"2026-03-10T01:59:46.679Z","message":{"role":"toolResult","toolCallId":"call_xrhDeVTVT9bczxxTb8Wyj4Ia|fc_05d310e2cecc5a330169af7b1225488191ba6c56dd85d07301","toolName":"exec","content":[{"type":"text","text":"/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:275:  let mode: \"api_key\" | \"oauth\" | \"token\" = \"api_key\";\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:281:      existingCred.type === \"oauth\" ? \"oauth\" : existingCred.type === \"token\" ? \"token\" : \"api_key\";\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:285:  if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === \"kilocode\") {\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:286:    await setKilocodeApiKey(normalizeApiKeyInput(params.opts.token), params.agentDir);\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:338:Also add tokenProvider mapping at the top of the function:\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:341:if (params.opts.tokenProvider === \"kilocode\") {\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:367:  \"Auth: setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|kilocode-api-key|ai-gateway-api-key|...\",\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/index.md:158:    Core Gateway settings, tokens, and provider config.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:139:    - `unauthorized` / reconnect loop → wrong token/password or auth mode mismatch.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:146:    - [/gateway/authentication](/gateway/authentication)\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:168:    - `refusing to bind gateway ... without auth` → non-loopback bind without token/password.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:198:    - `not_in_channel`, `missing_scope`, `Forbidden`, `401/403` → channel permission token issue.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:18:- macOS/onboarding: add a remote gateway token field for remote mode, preserve existing non-plaintext `gateway.remote.token` config values until explicitly replaced, and warn when the loaded token shape cannot be used directly from the macOS app. (#40187, supersedes #34614) Thanks @cgdusek.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:48:- Models/openai-codex GPT-5.4 forward-compat: use the GPT-5.4 1,050,000-token context window and 128,000 max tokens for `openai-codex/gpt-5.4` instead of inheriting stale legacy Codex limits in resolver fallbacks and model listing. (#37876) thanks @yuweuii.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:50:- Agents/failover: detect Amazon Bedrock `Too many tokens per day` quota errors as rate limits across fallback, cron retry, and memory embeddings while keeping context-window `too many tokens per request` errors out of the rate-limit lane. (#39377) Thanks @gambletan.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:89:- Gateway: add SecretRef support for gateway.auth.token with auth-mode guardrails. (#35094) Thanks @joshavant.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:91:- Plugins/before_prompt_build system-context fields: add `prependSystemContext` and `appendSystemContext` so static plugin guidance can be placed in system prompt space for provider caching and lower repeated prompt token cost. (#35177) thanks @maweibin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:113:- **BREAKING:** Gateway auth now requires explicit `gateway.auth.mode` when both `gateway.auth.token` and `gateway.auth.password` are configured (including SecretRefs). Set `gateway.auth.mode` to `token` or `password` before upgrade to avoid startup/pairing/TUI failures. (#35094) Thanks @joshavant.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:129:- TUI/token copy-safety rendering: treat long credential-like mixed alphanumeric tokens (including quoted forms) as copy-sensitive in render sanitization so formatter hard-wrap guards no longer inject visible spaces into auth-style values before display. (#26710) Thanks @jasonthane.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:147:- Cron/OpenAI Codex OAuth refresh hardening: when `openai-codex` token refresh fails specifically on account-id extraction, reuse the cached access token instead of failing the run immediately, with regression coverage to keep non-Codex and unrelated refresh failures unchanged. (#36604) Thanks @laulopezreal.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:166:- Control UI/auth token separation: keep the shared gateway token in browser auth validation while reserving cached device tokens for signed device payloads, preventing false `device token mismatch` disconnects after restart/rotation. Landed from contributor PR #37382 by @FradSer. Thanks @FradSer.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:167:- Gateway/browser auth reconnect hardening: stop counting missing token/password submissions as auth rate-limit failures, and stop auto-reconnecting Control UI clients on non-recoverable auth errors so misconfigured browser tabs no longer lock out healthy sessions. Landed from contributor PR #38725 by @ademczuk. Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:168:- Gateway/service token drift repair: stop persisting shared auth tokens into installed gateway service units, flag stale embedded service tokens for reinstall, and treat tokenless service env as canonical so token rotation/reboot flows stay aligned with config/env resolution. Landed from contributor PR #28428 by @l0cka. Thanks @l0cka.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:170:- Gateway/auth follow-up hardening: preserve systemd `EnvironmentFile=` precedence/source provenance in daemon audits and doctor repairs, block shared-password override flows from piggybacking cached device tokens, and fail closed when config-first gateway SecretRefs cannot resolve. Follow-up to #39241.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:192:- Venice/provider onboarding hardening: align per-model Venice completion-token limits with discovery metadata, clamp untrusted discovery values to safe bounds, sync the static Venice fallback catalog with current live model metadata, and disable tool wiring for Venice models that do not support function calling so default Venice setups no longer fail with `max_completion_tokens` or unsupported-tools 400s. Fixes #38168. Thanks @Sid-Qin, @powermaster888 and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:217:- Gateway/plugin HTTP auth hardening: require gateway auth when any overlapping matched route needs it, block mixed-auth fallthrough at dispatch, and reject mixed-auth exact/prefix route overlaps during plugin registration.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:232:- Security/auth labels: remove token and API-key snippets from user-facing auth status labels so `/status` and `/models` do not expose credential fragments. (#33262) thanks @cu1ch3n.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:253:- Discord/config SecretRef typing: align Discord account token config typing with SecretInput so SecretRef tokens typecheck. (#32490) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:263:- Telegram/draft preview boundary + silent-token reliability: stabilize answer-lane message boundaries across late-partial/message-start races, preserve/reset finalized preview state at the correct boundaries, and suppress `NO_REPLY` lead-fragment leaks without broad heartbeat-prefix false positives. (#33169) Thanks @obviyus.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:340:- Models/tool probing: raise the tool-capability probe budget from 32 to 256 tokens so reasoning models that spend tokens on thinking before returning a required tool call are less likely to be misclassified as not supporting tools. (#7521) Thanks @jakobdylanc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:360:- Models/auth token prompts: guard cancelled manual token prompts so `Symbol(clack:cancel)` values cannot be persisted into auth profiles; adds regression coverage for cancelled `models auth paste-token`. (#38951) Thanks @MumuTW.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:377:- Usage/token count formatting: round near-million token counts to millions (`1.0m`) instead of `1000k`, with explicit boundary coverage for `999_499` and `999_500`. (#39129) Thanks @CurryMessi.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:381:- Telegram/status SecretRef read-only resolution: resolve env-backed bot-token SecretRefs in config-only/status inspection while respecting provider source/defaults and env allowlists, so status no longer crashes or reports false-ready tokens for disallowed providers. (#39130) Thanks @neocody.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:382:- Agents/OpenAI WS max-token zero forwarding: treat `maxTokens: 0` as an explicit value in websocket `response.create` payloads (instead of dropping it as falsy), with regression coverage for zero-token forwarding. (#39148) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:396:- Gateway/password auth startup diagnostics: detect unresolved provider-reference objects in `gateway.auth.password` and fail with a specific bootstrap-secrets error message instead of generic misconfiguration output. (#39230) Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:402:- Control UI/auth error reporting: map generic browser `Fetch failed` websocket close errors back to actionable gateway auth messages (`gateway token mismatch`, `authentication failed`, `retry later`) so dashboard disconnects stop hiding credential problems. Landed from contributor PR #28608 by @KimGLee. Thanks @KimGLee.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:407:- Docker/token persistence on reconfigure: reuse the existing `.env` gateway token during `docker-setup.sh` reruns and align compose token env defaults, so Docker installs stop silently rotating tokens and breaking existing dashboard sessions. Landed from contributor PR #33097 by @chengzhichao-xydt. Thanks @chengzhichao-xydt.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:409:- Discord/exec approvals gateway auth: pass resolved shared gateway credentials into the Discord exec-approvals gateway client so token-auth installs stop failing approvals with `gateway token mismatch`. Related to #38179. Thanks @0riginal-claw for the adjacent PR #35147 investigation.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:474:- Telegram: guard duplicate-token checks and gateway startup token normalization when account tokens are missing, preventing `token.trim()` crashes during status/start flows. (#31973) Thanks @ningding97.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:485:- Synology Chat/webhook ingress hardening: enforce bounded body reads (size + timeout) via shared request-body guards to prevent unauthenticated slow-body hangs before token validation. (#25831) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:498:- Exec approvals/allowlist matching: escape regex metacharacters in path-pattern literals (while preserving glob wildcards), preventing crashes on allowlisted executables like `/usr/bin/g++` and correctly matching mixed wildcard/literal token paths. (#32162) Thanks @stakeswky.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:499:- Synology Chat/webhook compatibility: accept JSON and alias payload fields, allow token resolution from body/query/header sources, and ACK webhook requests with `204` to avoid persistent `Processing...` states in Synology Chat clients. (#26635) Thanks @memphislee09-source.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:510:- Gateway/Security canonicalization hardening: decode plugin route path variants to canonical fixpoint (with bounded depth), fail closed on canonicalization anomalies, and enforce gateway auth for deeply encoded `/api/channels/*` variants to prevent alternate-path auth bypass through plugin handlers. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:542:- Feishu/streaming card transport error handling: check `response.ok` before parsing JSON in token and card create requests so non-JSON HTTP error responses surface deterministic status failures. (#35628) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:546:- Slack/thread context payloads: only inject thread starter/history text on first thread turn for new sessions while preserving thread metadata, reducing repeated context-token bloat on long-lived thread sessions. (#32133) Thanks @sourman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:557:- Webchat/silent token leak: filter assistant `NO_REPLY`-only transcript entries from `chat.history` responses and add client-side defense-in-depth guards in the chat controller so internal silent tokens never render as visible chat bubbles. (#32015) Consolidates overlap from #32183, #32082, #32045, #32052, #32172, and #32112. Thanks @ademczuk, @liuxiaopai-ai, @ningding97, @bmendonca3, and @x4v13r1120.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:641:- Web UI/inline code copy fidelity: disable forced mid-token wraps on inline `<code>` spans so copied UUID/hash/token strings preserve exact content instead of inserting line-break spaces. (#32346) Thanks @hclsys.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:650:- Cron/isolated announce heartbeat suppression: treat multi-payload runs as skippable when any payload is a heartbeat ack token and no payload has media, preventing internal narration + trailing `HEARTBEAT_OK` from being delivered to users. (#32131) Thanks @adhishthite.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:686:- **BREAKING:** Node `system.run` execution now pins path-token commands to the canonical executable path (`realpath`) in both allowlist and approval execution flows. Integrations/tests that asserted token-form argv (for example `tr`) must now accept canonical paths (for example `/usr/bin/tr`).\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:707:- Auto-reply/NO_REPLY: strip `NO_REPLY` token from mixed-content messages instead of leaking raw control text to end users. Landed from contributor PR #31080 by @scoootscooob. Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:712:- Agents/Failover reason classification: avoid false rate-limit classification from incidental `tpm` substrings by matching TPM as a standalone token/phrase and keeping auth-context errors on the auth path. Landed from contributor PR #31007 by @HOYALIM. Thanks @HOYALIM.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:723:- Slack/Announce target account routing: enable session-backed announce-target lookup for Slack so multi-account announces resolve the correct `accountId` instead of defaulting to bot-token context. Landed from contributor PR #31028 by @taw0002. Thanks @taw0002.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:727:- Slack/User-token resolution: normalize Slack account user-token sourcing through resolved account metadata (`SLACK_USER_TOKEN` env + config) so monitor reads, Slack actions, directory lookups, onboarding allow-from resolution, and capabilities probing consistently use the effective user token. (#28103) Thanks @chilu18.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:776:- Usage normalization: clamp negative prompt/input token values to zero (including `prompt_tokens` alias inputs) so `/usage` and TUI usage displays cannot show nonsensical negative counts. Landed from contributor PR #31211 by @scoootscooob. Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:777:- Secrets/Auth profiles: normalize inline SecretRef `token`/`key` values to canonical `tokenRef`/`keyRef` before persistence, and keep explicit `keyRef` precedence when inline refs are also present. Landed from contributor PR #31047 by @minupla. Thanks @minupla.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:800:- Browser/Security: fail closed on browser-control auth bootstrap errors; if auto-auth setup fails and no explicit token/password exists, browser control server startup now aborts instead of starting unauthenticated. This ships in the next npm release. Thanks @ijxpwastaken.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:805:- Sandbox/noVNC hardening: increase observer password entropy, shorten observer token lifetime, and replace noVNC token redirect with a bootstrap page that keeps credentials out of `Location` query strings and adds strict no-cache/no-referrer headers.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:814:- Dashboard/macOS auth handling: switch the macOS “Open Dashboard” flow from query-string token injection to URL fragments, stop persisting Control UI gateway tokens in browser localStorage, and scrub legacy stored tokens on load. Thanks @JNX03 for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:815:- Gateway/Plugin HTTP auth hardening: require gateway auth for protected plugin paths and explicit `registerHttpRoute` paths (while preserving wildcard-handler behavior for signature-auth webhooks), and run plugin handlers after built-in handlers for deterministic route precedence. Landed from contributor PR #29198. Thanks @Mariana-Codebase.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:823:- Node host/service auth env: include `OPENCLAW_GATEWAY_TOKEN` in `openclaw node install` service environments (with `CLAWDBOT_GATEWAY_TOKEN` compatibility fallback) so installed node services keep remote gateway token auth across restart/reboot. Fixes #31041. Thanks @OneStepAt4time for reporting, @byungsker, @liuxiaopai-ai, and @vincentkoc."}],"details":{"status":"completed","exitCode":0,"durationMs":132,"aggregated":"/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:275:  let mode: \"api_key\" | \"oauth\" | \"token\" = \"api_key\";\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:281:      existingCred.type === \"oauth\" ? \"oauth\" : existingCred.type === \"token\" ? \"token\" : \"api_key\";\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:285:  if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === \"kilocode\") {\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:286:    await setKilocodeApiKey(normalizeApiKeyInput(params.opts.token), params.agentDir);\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:338:Also add tokenProvider mapping at the top of the function:\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:341:if (params.opts.tokenProvider === \"kilocode\") {\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/design/kilo-gateway-integration.md:367:  \"Auth: setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|kilocode-api-key|ai-gateway-api-key|...\",\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/index.md:158:    Core Gateway settings, tokens, and provider config.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:139:    - `unauthorized` / reconnect loop → wrong token/password or auth mode mismatch.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:146:    - [/gateway/authentication](/gateway/authentication)\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:168:    - `refusing to bind gateway ... without auth` → non-loopback bind without token/password.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/docs/help/troubleshooting.md:198:    - `not_in_channel`, `missing_scope`, `Forbidden`, `401/403` → channel permission token issue.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:18:- macOS/onboarding: add a remote gateway token field for remote mode, preserve existing non-plaintext `gateway.remote.token` config values until explicitly replaced, and warn when the loaded token shape cannot be used directly from the macOS app. (#40187, supersedes #34614) Thanks @cgdusek.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:48:- Models/openai-codex GPT-5.4 forward-compat: use the GPT-5.4 1,050,000-token context window and 128,000 max tokens for `openai-codex/gpt-5.4` instead of inheriting stale legacy Codex limits in resolver fallbacks and model listing. (#37876) thanks @yuweuii.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:50:- Agents/failover: detect Amazon Bedrock `Too many tokens per day` quota errors as rate limits across fallback, cron retry, and memory embeddings while keeping context-window `too many tokens per request` errors out of the rate-limit lane. (#39377) Thanks @gambletan.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:89:- Gateway: add SecretRef support for gateway.auth.token with auth-mode guardrails. (#35094) Thanks @joshavant.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:91:- Plugins/before_prompt_build system-context fields: add `prependSystemContext` and `appendSystemContext` so static plugin guidance can be placed in system prompt space for provider caching and lower repeated prompt token cost. (#35177) thanks @maweibin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:113:- **BREAKING:** Gateway auth now requires explicit `gateway.auth.mode` when both `gateway.auth.token` and `gateway.auth.password` are configured (including SecretRefs). Set `gateway.auth.mode` to `token` or `password` before upgrade to avoid startup/pairing/TUI failures. (#35094) Thanks @joshavant.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:129:- TUI/token copy-safety rendering: treat long credential-like mixed alphanumeric tokens (including quoted forms) as copy-sensitive in render sanitization so formatter hard-wrap guards no longer inject visible spaces into auth-style values before display. (#26710) Thanks @jasonthane.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:147:- Cron/OpenAI Codex OAuth refresh hardening: when `openai-codex` token refresh fails specifically on account-id extraction, reuse the cached access token instead of failing the run immediately, with regression coverage to keep non-Codex and unrelated refresh failures unchanged. (#36604) Thanks @laulopezreal.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:166:- Control UI/auth token separation: keep the shared gateway token in browser auth validation while reserving cached device tokens for signed device payloads, preventing false `device token mismatch` disconnects after restart/rotation. Landed from contributor PR #37382 by @FradSer. Thanks @FradSer.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:167:- Gateway/browser auth reconnect hardening: stop counting missing token/password submissions as auth rate-limit failures, and stop auto-reconnecting Control UI clients on non-recoverable auth errors so misconfigured browser tabs no longer lock out healthy sessions. Landed from contributor PR #38725 by @ademczuk. Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:168:- Gateway/service token drift repair: stop persisting shared auth tokens into installed gateway service units, flag stale embedded service tokens for reinstall, and treat tokenless service env as canonical so token rotation/reboot flows stay aligned with config/env resolution. Landed from contributor PR #28428 by @l0cka. Thanks @l0cka.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:170:- Gateway/auth follow-up hardening: preserve systemd `EnvironmentFile=` precedence/source provenance in daemon audits and doctor repairs, block shared-password override flows from piggybacking cached device tokens, and fail closed when config-first gateway SecretRefs cannot resolve. Follow-up to #39241.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:192:- Venice/provider onboarding hardening: align per-model Venice completion-token limits with discovery metadata, clamp untrusted discovery values to safe bounds, sync the static Venice fallback catalog with current live model metadata, and disable tool wiring for Venice models that do not support function calling so default Venice setups no longer fail with `max_completion_tokens` or unsupported-tools 400s. Fixes #38168. Thanks @Sid-Qin, @powermaster888 and @vincentkoc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:217:- Gateway/plugin HTTP auth hardening: require gateway auth when any overlapping matched route needs it, block mixed-auth fallthrough at dispatch, and reject mixed-auth exact/prefix route overlaps during plugin registration.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:232:- Security/auth labels: remove token and API-key snippets from user-facing auth status labels so `/status` and `/models` do not expose credential fragments. (#33262) thanks @cu1ch3n.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:253:- Discord/config SecretRef typing: align Discord account token config typing with SecretInput so SecretRef tokens typecheck. (#32490) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:263:- Telegram/draft preview boundary + silent-token reliability: stabilize answer-lane message boundaries across late-partial/message-start races, preserve/reset finalized preview state at the correct boundaries, and suppress `NO_REPLY` lead-fragment leaks without broad heartbeat-prefix false positives. (#33169) Thanks @obviyus.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:340:- Models/tool probing: raise the tool-capability probe budget from 32 to 256 tokens so reasoning models that spend tokens on thinking before returning a required tool call are less likely to be misclassified as not supporting tools. (#7521) Thanks @jakobdylanc.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:360:- Models/auth token prompts: guard cancelled manual token prompts so `Symbol(clack:cancel)` values cannot be persisted into auth profiles; adds regression coverage for cancelled `models auth paste-token`. (#38951) Thanks @MumuTW.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:377:- Usage/token count formatting: round near-million token counts to millions (`1.0m`) instead of `1000k`, with explicit boundary coverage for `999_499` and `999_500`. (#39129) Thanks @CurryMessi.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:381:- Telegram/status SecretRef read-only resolution: resolve env-backed bot-token SecretRefs in config-only/status inspection while respecting provider source/defaults and env allowlists, so status no longer crashes or reports false-ready tokens for disallowed providers. (#39130) Thanks @neocody.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:382:- Agents/OpenAI WS max-token zero forwarding: treat `maxTokens: 0` as an explicit value in websocket `response.create` payloads (instead of dropping it as falsy), with regression coverage for zero-token forwarding. (#39148) Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:396:- Gateway/password auth startup diagnostics: detect unresolved provider-reference objects in `gateway.auth.password` and fail with a specific bootstrap-secrets error message instead of generic misconfiguration output. (#39230) Thanks @ademczuk.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:402:- Control UI/auth error reporting: map generic browser `Fetch failed` websocket close errors back to actionable gateway auth messages (`gateway token mismatch`, `authentication failed`, `retry later`) so dashboard disconnects stop hiding credential problems. Landed from contributor PR #28608 by @KimGLee. Thanks @KimGLee.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:407:- Docker/token persistence on reconfigure: reuse the existing `.env` gateway token during `docker-setup.sh` reruns and align compose token env defaults, so Docker installs stop silently rotating tokens and breaking existing dashboard sessions. Landed from contributor PR #33097 by @chengzhichao-xydt. Thanks @chengzhichao-xydt.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:409:- Discord/exec approvals gateway auth: pass resolved shared gateway credentials into the Discord exec-approvals gateway client so token-auth installs stop failing approvals with `gateway token mismatch`. Related to #38179. Thanks @0riginal-claw for the adjacent PR #35147 investigation.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:474:- Telegram: guard duplicate-token checks and gateway startup token normalization when account tokens are missing, preventing `token.trim()` crashes during status/start flows. (#31973) Thanks @ningding97.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:485:- Synology Chat/webhook ingress hardening: enforce bounded body reads (size + timeout) via shared request-body guards to prevent unauthenticated slow-body hangs before token validation. (#25831) Thanks @bmendonca3.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:498:- Exec approvals/allowlist matching: escape regex metacharacters in path-pattern literals (while preserving glob wildcards), preventing crashes on allowlisted executables like `/usr/bin/g++` and correctly matching mixed wildcard/literal token paths. (#32162) Thanks @stakeswky.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:499:- Synology Chat/webhook compatibility: accept JSON and alias payload fields, allow token resolution from body/query/header sources, and ACK webhook requests with `204` to avoid persistent `Processing...` states in Synology Chat clients. (#26635) Thanks @memphislee09-source.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:510:- Gateway/Security canonicalization hardening: decode plugin route path variants to canonical fixpoint (with bounded depth), fail closed on canonicalization anomalies, and enforce gateway auth for deeply encoded `/api/channels/*` variants to prevent alternate-path auth bypass through plugin handlers. Thanks @tdjackey for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:542:- Feishu/streaming card transport error handling: check `response.ok` before parsing JSON in token and card create requests so non-JSON HTTP error responses surface deterministic status failures. (#35628) Thanks @Sid-Qin.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:546:- Slack/thread context payloads: only inject thread starter/history text on first thread turn for new sessions while preserving thread metadata, reducing repeated context-token bloat on long-lived thread sessions. (#32133) Thanks @sourman.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:557:- Webchat/silent token leak: filter assistant `NO_REPLY`-only transcript entries from `chat.history` responses and add client-side defense-in-depth guards in the chat controller so internal silent tokens never render as visible chat bubbles. (#32015) Consolidates overlap from #32183, #32082, #32045, #32052, #32172, and #32112. Thanks @ademczuk, @liuxiaopai-ai, @ningding97, @bmendonca3, and @x4v13r1120.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:641:- Web UI/inline code copy fidelity: disable forced mid-token wraps on inline `<code>` spans so copied UUID/hash/token strings preserve exact content instead of inserting line-break spaces. (#32346) Thanks @hclsys.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:650:- Cron/isolated announce heartbeat suppression: treat multi-payload runs as skippable when any payload is a heartbeat ack token and no payload has media, preventing internal narration + trailing `HEARTBEAT_OK` from being delivered to users. (#32131) Thanks @adhishthite.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:686:- **BREAKING:** Node `system.run` execution now pins path-token commands to the canonical executable path (`realpath`) in both allowlist and approval execution flows. Integrations/tests that asserted token-form argv (for example `tr`) must now accept canonical paths (for example `/usr/bin/tr`).\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:707:- Auto-reply/NO_REPLY: strip `NO_REPLY` token from mixed-content messages instead of leaking raw control text to end users. Landed from contributor PR #31080 by @scoootscooob. Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:712:- Agents/Failover reason classification: avoid false rate-limit classification from incidental `tpm` substrings by matching TPM as a standalone token/phrase and keeping auth-context errors on the auth path. Landed from contributor PR #31007 by @HOYALIM. Thanks @HOYALIM.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:723:- Slack/Announce target account routing: enable session-backed announce-target lookup for Slack so multi-account announces resolve the correct `accountId` instead of defaulting to bot-token context. Landed from contributor PR #31028 by @taw0002. Thanks @taw0002.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:727:- Slack/User-token resolution: normalize Slack account user-token sourcing through resolved account metadata (`SLACK_USER_TOKEN` env + config) so monitor reads, Slack actions, directory lookups, onboarding allow-from resolution, and capabilities probing consistently use the effective user token. (#28103) Thanks @chilu18.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:776:- Usage normalization: clamp negative prompt/input token values to zero (including `prompt_tokens` alias inputs) so `/usage` and TUI usage displays cannot show nonsensical negative counts. Landed from contributor PR #31211 by @scoootscooob. Thanks @scoootscooob.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:777:- Secrets/Auth profiles: normalize inline SecretRef `token`/`key` values to canonical `tokenRef`/`keyRef` before persistence, and keep explicit `keyRef` precedence when inline refs are also present. Landed from contributor PR #31047 by @minupla. Thanks @minupla.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:800:- Browser/Security: fail closed on browser-control auth bootstrap errors; if auto-auth setup fails and no explicit token/password exists, browser control server startup now aborts instead of starting unauthenticated. This ships in the next npm release. Thanks @ijxpwastaken.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:805:- Sandbox/noVNC hardening: increase observer password entropy, shorten observer token lifetime, and replace noVNC token redirect with a bootstrap page that keeps credentials out of `Location` query strings and adds strict no-cache/no-referrer headers.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:814:- Dashboard/macOS auth handling: switch the macOS “Open Dashboard” flow from query-string token injection to URL fragments, stop persisting Control UI gateway tokens in browser localStorage, and scrub legacy stored tokens on load. Thanks @JNX03 for reporting.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:815:- Gateway/Plugin HTTP auth hardening: require gateway auth for protected plugin paths and explicit `registerHttpRoute` paths (while preserving wildcard-handler behavior for signature-auth webhooks), and run plugin handlers after built-in handlers for deterministic route precedence. Landed from contributor PR #29198. Thanks @Mariana-Codebase.\n/home/kuhnn/.npm-global/lib/node_modules/openclaw/CHANGELOG.md:823:- Node host/service auth env: include `OPENCLAW_GATEWAY_TOKEN` in `openclaw node install` service environments (with `CLAWDBOT_GATEWAY_TOKEN` compatibility fallback) so installed node services keep remote gateway token auth across restart/reboot. Fixes #31041. Thanks @OneStepAt4time for reporting, @byungsker, @liuxiaopai-ai, and @vincentkoc.","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107986666}}
{"type":"message","id":"e9d074c8","parentId":"17823db6","timestamp":"2026-03-10T01:59:53.877Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Investigating token retrieval**\n\nI need to find a clear way to get the token. One possibility is checking the configuration or status documentation. It might also be useful to inspect the openclaw.json file, possibly located at /.openclaw/openclaw.json in the auth section. I’ll look into these approaches to get the information more efficiently. Let’s see if that can lead me down the right path to access the token I need!","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7b15ada48191bf7f28ee7262db0e\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3sZEa9SJrgetGRor0hKA2MyICRF_qm7_LuGd4V0jXUHue9rMtTg3dCzGIXMkypwDlWH0aSNui4dfiXOLarITDBl5dnPYqETiqYJYZs_WT-dHsbvvm_C7f-Or7L3A7rJJIHf-oapTan_waloGTwOMKYEUySNwGDcnXDcVDZEQZ3GvK996IZv3uNPOlNXDnrh5FlVopSnMg-FgtNpQtUJh-Uq3hnljH3JNm9_AHJoifco4fwZwXrbSqAitb3pxATKvksQe_A9RBieiE_OorsgspKilyvCED26ikPA5oQ-qStDtmN1fySY6A3F_ucaa-dXW4lcVo4goU1_5RysGoLj1uw4R4DeBZI5vbOx8touE7G6G75ONSufxWUwJMtP0Da7_aW-5kpbi2jsKGsTLx4FultAxWdcrNlut9mYvCJCWsGIYWm3braoODUIGz_y9d66EyaaxBllNw7OjlIgdXHMk-JCtagwikccvEt8VR1bRbUMbszP-QbRmoB28vkIiZ_UOzpZzA1TgRyG9kKijKiOylV18JSOn-khusItB6lxI9dcyxKulDtR_09Bb911UyMI_6AtoXKqBK6SVg0qpWCnQ76OrNwYlT4QV6z8pql3C_l8Vqo1pcHRvgL98OkMKvSEEtZmWlQ-cRbgSCi1_xiI-33HqmxZl7tk62-yb-OSk8Xb0Czr_P088F19cz-tx4AAj_qfYQHPguVpHgAVoWS9eWgarlVVj942aYmfGSFJjoDIgKaEQttnTVhiDqIWLjBr0bbMn3La5eA4t7utzq4iIiaWLDNt7AFmy-yWFoKzmxwRIvzdmYRCUlw20fMdlsyY5aeVzwlTK5YsIjTq8VruExoEnBJA5zErbnYJa_NIA7CZZAPJkbhYVSXnHc0EbqilKeJE5E3Vs7CK8L2ek6MoKqR7oY6rECjdOEEEOWQCOAH19IOMFTNPXZMnLghP2wS7RS8KdBMvHjXlhReFzba0824mktXmANdFnN4xPJXw62v8CT1aVhEaX8dZV8OT5ibG42uBZY1fTYCt4mSoKIslkMkF2zATzT8VjvTmqH3wDFUueYQ=\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"**Investigating token retrieval**\\n\\nI need to find a clear way to get the token. One possibility is checking the configuration or status documentation. It might also be useful to inspect the openclaw.json file, possibly located at /.openclaw/openclaw.json in the auth section. I’ll look into these approaches to get the information more efficiently. Let’s see if that can lead me down the right path to access the token I need!\"}]}"},{"type":"toolCall","id":"call_yEbnzFn7e6e7n1afSCdGCjXq|fc_05d310e2cecc5a330169af7b1992bc81918c060836efd1f72b","name":"exec","arguments":{"command":"python - <<'PY'\nimport json, os\np=os.path.expanduser('~/.openclaw/openclaw.json')\nwith open(p) as f:\n    data=json.load(f)\na=((data.get('gateway') or {}).get('auth') or {})\nprint('mode=',a.get('mode'))\nprint('has_token=', 'token' in a and bool(a.get('token')))\nprint('has_password=', 'password' in a and bool(a.get('password')))\nPY","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"python - <<'PY'\\nimport json, os\\np=os.path.expanduser('~/.openclaw/openclaw.json')\\nwith open(p) as f:\\n    data=json.load(f)\\na=((data.get('gateway') or {}).get('auth') or {})\\nprint('mode=',a.get('mode'))\\nprint('has_token=', 'token' in a and bool(a.get('token')))\\nprint('has_password=', 'password' in a and bool(a.get('password')))\\nPY\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":4505,"output":198,"cacheRead":40192,"cacheWrite":0,"totalTokens":44895,"cost":{"input":0.011262500000000002,"output":0.00297,"cacheRead":0.010048,"cacheWrite":0,"total":0.024280500000000003}},"stopReason":"toolUse","timestamp":1773107986671}}
{"type":"message","id":"41fdab81","parentId":"e9d074c8","timestamp":"2026-03-10T01:59:54.085Z","message":{"role":"toolResult","toolCallId":"call_yEbnzFn7e6e7n1afSCdGCjXq|fc_05d310e2cecc5a330169af7b1992bc81918c060836efd1f72b","toolName":"exec","content":[{"type":"text","text":"{\n  \"status\": \"error\",\n  \"tool\": \"exec\",\n  \"error\": \"/bin/bash: 行 1: python: 未找到命令\\n\\nCommand not found\"\n}"}],"details":{"status":"error","tool":"exec","error":"/bin/bash: 行 1: python: 未找到命令\n\nCommand not found"},"isError":false,"timestamp":1773107994071}}
{"type":"message","id":"5a5df572","parentId":"41fdab81","timestamp":"2026-03-10T01:59:59.019Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7b1c2660819181cd50d55849e9a4\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3scqtb7LYvm3FlQ1dV4GzCKmeRxtdbfkOD39ChC-462xuPimPXnsomEQZaYOmj_k6y4Utnllcp3kSXU0g6JcKTiVH6_liR2jPuVxy800W2zpxisofiz8NT7WaW39xXyhjOGNKFDSMyMOozsMYgshpdllSAQ4TN2OA8WSj4stlsK0J1wJXJSDQD5gfBk1UFUN1q822TP3q-47h1ziXlQRlbWaVZtc64y6qk8TegUmU_QpQTHTMNPN_2aY7Mv_VTuYX0eTFToiDnIlocd5jRHp7IZxRoR_qfHA6W4lu1vPjc-10b1thajsGNfn8IWIH2EVXIwET0d5RbguI7FGg6POCg5SuJMwHvDfpQfieKy62s8tBrHOnNrrcKWwikY6ePwn3_iFYnpOupFuo1p-gcAebTYizllx93KEP6DiJ7Wq2KvTSGQAz7qTLmIpYbOZ8RWQFYKVOmblt8dTsPkrIijfhHGmaxoTUZI8TsWOHz6NQJjftvSUqPB21P4HzFH8m9og48TElsSKgJNDDb-tQ1CGgeaOArXol3ul-qG7Bcjfe0q6jDuWesh4nHpkRQyW0LwG-2ed7JhNCcGL-BABuxdsdHi8nvI5mRWo4qhPDvnjrboCSwhDfJw8oAyt_6Fr7SabajqC0BavBhrWC1yk-NMsIt2CCRdwwC7TK5Nd2Rjrj8CuWm45TjHP2WX7lYO_Bv6_4nU7U7SYRql7NTg8X6qtUcaAY2OoceG7tv0LcCTka1lmB6xxYupP4xUZVt-R0s-xJ78mNpi_ihJyzNO_VKHtkmwddJDYioj05Rab37x5f0sq93icUvP7VmF51B_vVzcXjrM\",\"summary\":[]}"},{"type":"toolCall","id":"call_1PNcE76LIGH8r4OxvYi5TeOj|fc_05d310e2cecc5a330169af7b1cb6bc8191a726faeaf61d1fe4","name":"exec","arguments":{"command":"node - <<'NODE'\nconst fs=require('fs');\nconst p=process.env.HOME+'/.openclaw/openclaw.json';\nconst data=JSON.parse(fs.readFileSync(p,'utf8'));\nconst a=((data.gateway||{}).auth||{});\nconsole.log('mode='+a.mode);\nconsole.log('has_token='+(!!a.token));\nconsole.log('has_password='+(!!a.password));\nNODE","workdir":"/home/kuhnn/.openclaw/workspace","yieldMs":10000,"timeout":20},"partialJson":"{\"command\":\"node - <<'NODE'\\nconst fs=require('fs');\\nconst p=process.env.HOME+'/.openclaw/openclaw.json';\\nconst data=JSON.parse(fs.readFileSync(p,'utf8'));\\nconst a=((data.gateway||{}).auth||{});\\nconsole.log('mode='+a.mode);\\nconsole.log('has_token='+(!!a.token));\\nconsole.log('has_password='+(!!a.password));\\nNODE\",\"workdir\":\"/home/kuhnn/.openclaw/workspace\",\"yieldMs\":10000,\"timeout\":20}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":145,"output":150,"cacheRead":44800,"cacheWrite":0,"totalTokens":45095,"cost":{"input":0.00036250000000000003,"output":0.0022500000000000003,"cacheRead":0.0112,"cacheWrite":0,"total":0.0138125}},"stopReason":"toolUse","timestamp":1773107994080}}
{"type":"message","id":"ace6eefc","parentId":"5a5df572","timestamp":"2026-03-10T01:59:59.343Z","message":{"role":"toolResult","toolCallId":"call_1PNcE76LIGH8r4OxvYi5TeOj|fc_05d310e2cecc5a330169af7b1cb6bc8191a726faeaf61d1fe4","toolName":"exec","content":[{"type":"text","text":"mode=token\nhas_token=true\nhas_password=false"}],"details":{"status":"completed","exitCode":0,"durationMs":309,"aggregated":"mode=token\nhas_token=true\nhas_password=false","cwd":"/home/kuhnn/.openclaw/workspace"},"isError":false,"timestamp":1773107999333}}
{"type":"message","id":"1336ad59","parentId":"ace6eefc","timestamp":"2026-03-10T02:00:07.727Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"","thinkingSignature":"{\"id\":\"rs_05d310e2cecc5a330169af7b217fc08191b802c41b73648c81\",\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABpr3skckCQTjTVoLQrm47QJQKwX7l4zHoihxEpx3aHcea6uUh_U3JiJoAxTVIKD-Q4MNUpwmhdBPFz6NxUFzhSvZNuJfglsTFs3sSTR1OahCbXvuEh48mDZ9hlg8Ki4cYWFJrw6lYT8i0I0VovZ6cPBFOUFhVYdiovN5b9TsK6xgUCbwz71ryPX9SbCOdeNB7zsdHsXpTOTyRPeKfMhS-q4Kuh4VcRLXaHTCqr54_Ew7dBBOJaiV9nkrBV5R9OjBLmmaoYfR2NWGcCRr95wjDZSv_rMNFxmKZtTvFVAdHSM9h5MGwwB0Mis-0mZ-18XmtZgJZX7t-Tu-wYE_be3mB6YgCjU4ynRFKBAh_3RH2Ckvk7N2OMWtrGEe86NALgzrwsJAneBX_m8yI8Z64VRgluIWd23On7Z6vcb-OB8vNENp2xebKLoD3yudTOb8Ty_crp3gJqU5b06Na_g00cnSzAXxGOrv7pdjzKkiJ8lliNeKrkhBfOM_PeKEfzvbUtepvnOh1eUvPlwmpCc9R85h2xMWITfOiB_8TB0wnyoS4rAqguGkZG4stNH3kL0Jg_7u5vkaE5a3lNaGysLiXP7PceCWapN8kyl-DygJ5ZEqueABNSm00Y4frJUkLw5724BTA2x02htTB-s1Qm-o8AVWjJUmMoKh7BzRiGJSBLEzMs4pxP_O4BvIu2BoP9rnn12PZ-A3iIZvSFZ9K7vG5lCDMNt6Hx1MX9G8ejZinM_8WKZJVnbS_2GsFysWAuqSfyMPdJISiCLFAa22WfRLjUdcZOsQEF8m98kewSViJ1B2CD0o_6NARcIILFDZS1X3VkLketgCSYsyOpZCHoaVl4pDyctUXv2nYKdXJP5EYRGA9vcM-LYN3ZAyL95JPhWbLTNwEqLwZl28F6zn30gjdyTaR8-aRfW6Q5qQ_E-71LY7_4ORu3rPBLzpD_pUbEQb55GE4dTHEGueViosRUcjzJgLO3Wy0mH9H1yNkGwzMyLoFdSbct0wiTLrTyc7iNW7r3dQgSUswdnu6YUuXxHol9w_rjMl7BBNMgP-akM96qs5cdL9nb-pUd4hzlUv7Dl_E-lRWd6HGR2PqP6jtf9pcmTcXuxJPjMA1H82byo-MW4nXxl1Sj0CzykQbhv5kJf-FffNSW0xjyW61X5s5x5F9L8S3OzY78fNufzaKIx9aNS4ABhikVYnoq0JhgVA2jGS4icPs0BQtux1SmrJJ_d-OT7YDgxk0nMIT1CvbQsJyNASyGSLfajN1Q2kxMPJ70FhOPpHebIQUe1EdiH0tiZzIfwLdposL5hjnE9T_30FbM2pS4VSBf2kTLSW7Oq_cp6v85t63HGjZfWJte74BffuTNFaA4zkhVLIPk6sUfLiPccQ8fG5RNrtWW0jD_fP1GvplOM6D7B0L30vP8o6jqfQ0bptjxQhaR81JYyk4o1khagLavmuMzrYY1vvjDoaFRPTyi2yjgCR6duIKZUtqxDJzLAX7zUGqxXtMIKwhXXa5TrJszeHCz4tY=\",\"summary\":[]}"},{"type":"text","text":"[[reply_to_current]] Yep — that’s the problem.\n\nI checked the config:\n- auth mode is `token`\n- a gateway token **is configured**\n\nSo the token isn’t absent from OpenClaw — it’s just not set in the web UI.\n\nYou can get it from:\n- `~/.openclaw/openclaw.json`\n- field: `gateway.auth.token`\n\nQuick way in terminal:\n```bash\nnode -e 'const fs=require(\"fs\");const c=JSON.parse(fs.readFileSync(process.env.HOME+\"/.openclaw/openclaw.json\",\"utf8\"));console.log(c.gateway.auth.token)'\n```\n\nThen:\n1. open `http://127.0.0.1:18789/`\n2. paste that token into the Control UI gateway/auth settings\n3. reconnect\n\nIf you want, I can also help you:\n- print the token here,\n- rotate it to a new one,\n- or make the dashboard accessible from another device.","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7b2408c88191b644403e3695dcf1\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":188,"output":323,"cacheRead":44928,"cacheWrite":0,"totalTokens":45439,"cost":{"input":0.00047000000000000004,"output":0.004845,"cacheRead":0.011231999999999999,"cacheWrite":0,"total":0.016547}},"stopReason":"stop","timestamp":1773107999337}}
{"type":"message","id":"89346ede","parentId":"1336ad59","timestamp":"2026-03-10T02:02:38.299Z","message":{"role":"user","content":[{"type":"text","text":"Sender (untrusted metadata):\n```json\n{\n  \"label\": \"openclaw-tui (gateway-client)\",\n  \"id\": \"gateway-client\",\n  \"name\": \"openclaw-tui\",\n  \"username\": \"openclaw-tui\"\n}\n```\n\n[Tue 2026-03-10 02:02 GMT] 用中文告诉我如何操作"}],"timestamp":1773108158290}}
{"type":"message","id":"a47b08f9","parentId":"89346ede","timestamp":"2026-03-10T02:02:46.408Z","message":{"role":"assistant","content":[{"type":"text","text":"[[reply_to_current]] 可以，按这个做：\n\n1. 先打开终端  \n2. 运行这条命令，查看你的 gateway token：\n\n```bash\nnode -e 'const fs=require(\"fs\");const c=JSON.parse(fs.readFileSync(process.env.HOME+\"/.openclaw/openclaw.json\",\"utf8\"));console.log(c.gateway.auth.token)'\n```\n\n3. 复制终端里输出的那一长串 token\n\n4. 打开 OpenClaw 网页：\n```text\nhttp://127.0.0.1:18789/\n```\n\n5. 在网页里找到网关认证 / Gateway Token / Control UI 设置之类的位置  \n   把刚才复制的 token 粘贴进去\n\n6. 保存后重新连接\n\n如果还是打不开，再检查这几点：\n- 你是不是在**同一台电脑**上打开 `127.0.0.1:18789`\n- 不行就试：\n  - `http://localhost:18789/`\n- 如果页面能开，但提示未授权，那基本就是 **token 没填对**\n\n补充说明：\n- 你的 OpenClaw **已经在运行**\n- 现在的问题不是“没启动”，而是 **网页没有填 gateway token**\n\n如果你愿意，我下一条可以直接用中文继续告诉你：\n- **这个 token 具体在网页哪里填**\n或者\n- **怎么把 OpenClaw 改成局域网里别的设备也能打开**","textSignature":"{\"v\":1,\"id\":\"msg_05d310e2cecc5a330169af7bc0678c819195292cc1133c0a9d\",\"phase\":\"final_answer\"}"}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.4","usage":{"input":5323,"output":319,"cacheRead":39936,"cacheWrite":0,"totalTokens":45578,"cost":{"input":0.013307500000000002,"output":0.004785,"cacheRead":0.009984,"cacheWrite":0,"total":0.0280765}},"stopReason":"stop","timestamp":1773108158294}}
