sk heavy industries

openclaw active

ai-assistantself-hostedtypescriptopen-source

OpenClaw is an open-source, self-hosted personal AI gateway that routes to LLMs across 20+ messaging channels (WhatsApp, Telegram, Slack, Discord, iMessage, Signal, …) with voice, a live canvas, and an extensible plugin system. TypeScript monorepo. I contribute upstream from my fork, mr-sk/openclaw.

Contributions

  • Break the Discord resume "death spiral" on stale sessions · submitted 2026-02-25 Expired Discord sessions trapped the gateway in an infinite resume loop (close code 1005) because stale session state was never cleared. Added a ResilientGatewayPlugin that resets the session on the 30s HELLO timeout and forces a fresh IDENTIFY, and cut wasteful reconnect attempts from 50 to 10 (~25 min of pointless retrying).

  • Guard the zsh compdef call in generated completions · submitted 2026-02-19 The generated zsh completion script called compdef unconditionally, which errored in non-interactive shells (zsh -c, SSH, remote editors) and after shell-state snapshot/restore. Guarded the call with $+functions[compdef], re-initialized the _comps map when lost, and fixed the #compdef-on-line-1 convention.

  • Handle Qwen 3 reasoning field in Ollama responses · merged 2026-02-16 Qwen 3 models served via Ollama return their answer in a reasoning field with an empty content field, so OpenClaw only read content and showed blank replies. Added a fallback to reasoning in both the message builder and the streaming accumulator. Non-breaking for models that use content normally.

Stack: TypeScript, Node, a pnpm monorepo, Vitest, Docker Compose.