Spaces:
Sleeping
Sleeping
Commit History
-
fix(gateway): probe /api/health instead of root URL (#394)
HonzysClawdbot +1: NykUnverified signature* fix(gateway): probe /api/health instead of root URL for health checks (#390) The server-side gateway health probe was fetching the root URL (/) which returns HTTP 400 on OpenClaw 2026.3.13 gateways. The gateway exposes a dedicated /api/health endpoint that returns 200 with status info. The WebSocket ping RPC 'unknown method' issue is already handled — websocket.ts detects the INVALID_REQUEST and falls back to passive heartbeat mode. The actual bug was this HTTP probe hitting the wrong endpoint. Fixes #390 * fix(gateway): ensure gateways table exists before health probe The gateways table is created lazily by the gateways API (ensureTable). The health route was querying it directly without CREATE IF NOT EXISTS, causing SqliteError: no such table: gateways in fresh databases (E2E tests, Docker first-boot). Add ensureGatewaysTable() inline to mirror the pattern in route.ts. * fix: update health-utils test to match /api/health probe path The test file has its own copy of buildGat…11d4af9 -
feat: task assignment session targeting (#399)
HonzysClawdbotUnverified signature* feat: add task session targeting - dispatch tasks to specific agent sessions (#395) When assigning a task to an agent, users can now optionally select an existing session to dispatch the task to instead of creating a new one. Changes: - task-dispatch.ts: When target_session is set in task metadata, use gateway chat.send to dispatch to that specific session instead of creating a new one via call agent - task-board-panel.tsx: Add session selector dropdown in both Create and Edit task modals that appears when an agent is selected and has active sessions - store/index.ts: Add agent and channel fields to Session interface Closes #395 * fix(gateway): ensure gateways table exists before health probe The gateways table is created lazily by the gateways API (ensureTable). The health route was querying it directly without CREATE IF NOT EXISTS, causing SqliteError: no such table: gateways in fresh databases (E2E tests, Docker first-boot). Add ensureGatewaysTable() inline to mirror…66bd6b3
-
test: add gateway health history e2e + utility unit tests
HonzysClawdbotUnverified signature* fix: show all agents in command select, disable those without active session Previously the agent select in the OrchestrationBar only listed agents with a session_key set (agents.filter(a => a.session_key)), causing the dropdown to appear completely empty when agents exist but none have an active session. This was confusing — users thought no agents were registered. Fix: show all registered agents in the dropdown. Agents without an active session_key are shown as disabled with a '— no session' suffix and a tooltip explaining why they can't be messaged. The 'No agents registered' placeholder is shown only when the agents array is truly empty. The send button remains correctly disabled when no valid agent is selected. Fixes #321 * test: add gateway health history e2e + utility unit tests - Add tests/gateway-health-history.spec.ts: Playwright e2e tests for GET /api/gateways/health/history and POST /api/gateways/health covering auth guards, response shape validation, chronologi…58fae19 -
feat(gateway): detect port-based Tailscale Serve proxies (#330)
Unverified signatureThe existing Tailscale Serve detection only looked for a /gw path handler, missing configurations where the gateway is proxied on a separate port (e.g. :8443 → localhost:18789). This caused remote browsers to attempt direct wss connections to the gateway port, which fails through Tailscale. Extract Tailscale Serve detection into src/lib/tailscale-serve.ts and extend it to discover port-based proxy mappings from the Tailscale Serve JSON config. Also adds the macOS app bundle path for the Tailscale CLI binary, which is not on PATH when installed via the Mac App Store.11b3669 -
fix: prefer explicit public gateway websocket url (#325)
jonboiramaUnverified signature674f35f
-
feat(gateways): add health history logging and timeline (#300)
nykUnverified signature058b0d8
-
feat(refactor): ready for manual QA after main sync (#274)
nyk +1: Claude Opus 4.6Unverified signature* fix: preserve gateway token query in websocket URLs * fix: classify secure-context device identity handshake errors * fix: normalize trailing dot in host allowlist checks * fix: support proxied gateway websocket paths and tailnet host normalization * fix: auto-connect startup to primary configured gateway * fix: keep gateway tokens server-side only * fix: allow authenticated viewers to resolve gateway connect credentials * fix: identify mission control as operator gateway client * fix: redirect remote http sessions to https for gateway auth * fix: support URL-style gateway hosts in health probes * fix: resolve primary gateway credentials from detected openclaw runtime * fix: hide duplicate gateway connection summary when managed * refactor: remove super admin and workspaces panels from UI navigation * fix: treat configured gateways as full-mode capability * refactor: move promo banner copy into subtle footer note * fix: stabilize gateway websocket connect protocol dete…b6ecafa
-
fix(gateway): use stored token for websocket connect payload
Nyk395fc60
-
fix: add OpenClaw 3.2 compatibility for spawn and gateway health
Nyke7f2128
-
fix: strict mode, test stubs, pagination counts, N+1 queries, CSP hardening
Nyk- Enable TypeScript strict mode and fix all resulting type errors - Add auth test stubs for requireRole and safeCompare - Add proper COUNT(*) pagination totals to agents, tasks, notifications, messages, conversations, and standup history endpoints - Fix N+1 queries by hoisting db.prepare() outside loops in agents, activities, notifications, conversations, standup, gateway health, and notification delivery routes - Remove unsafe-eval from CSP script-src directive - Remove deprecated X-XSS-Protection headerd258620 -
fix: remove legacy auth, add login rate limiting, block SSRF metadata, parameterize migration SQL
Nyk97dff67
-
feat: initial open-source release
NykOpenClaw Mission Control — agent orchestration dashboard. Built with Next.js 16, React 19, TypeScript, SQLite, and Tailwind CSS. MIT License.bbbc03f