diff --git a/docs/plans/2026-02-06-openclaw-feature-gap-analysis.md b/docs/plans/2026-02-06-openclaw-feature-gap-analysis.md index cd0854c..6854439 100644 --- a/docs/plans/2026-02-06-openclaw-feature-gap-analysis.md +++ b/docs/plans/2026-02-06-openclaw-feature-gap-analysis.md @@ -145,7 +145,7 @@ Flynn actually has MCP support that OpenClaw doesn't emphasise — OpenClaw reli |---------|----------|-------|--------| | Tool confirmation hooks | Full | Full (confirm/log/silent patterns) | **MATCH** | | Chat ID allowlists | Per-channel | Full (Telegram, Discord, Slack, WhatsApp all have allowlists) | **MATCH** | -| DM pairing (unknown senders) | Full (pairing codes) | -- | **MISSING** | +| DM pairing (unknown senders) | Full (pairing codes) | Full (PairingManager with TTL codes, channel adapter integration, gateway handlers, TUI /pair command) | **MATCH** | | Credential redaction | Config responses redacted (v2026.2.6) | Full (18+ secret fields redacted from config API) | **MATCH** | | Skill/plugin code safety scanner | Static analysis (v2026.2.6) | -- | **MISSING** | | Docker sandboxing | Full (per-session/agent/shared) | Full (per-agent sandbox via SandboxManager + Docker) | **MATCH** | @@ -198,17 +198,17 @@ Flynn actually has MCP support that OpenClaw doesn't emphasise — OpenClaw reli |---------|----------|-------|--------| | WebSocket control plane | Full | Full (JSON-RPC protocol, session bridge, handlers) | **MATCH** | | Control UI (web dashboard) | Full | Full SPA (dashboard, chat, sessions, settings) | **MATCH** | -| Tailscale Serve/Funnel | Full integration | -- | **MISSING** | -| Remote gateway access | SSH tunnels + tailnet | Tailscale-only binding option | **PARTIAL** | +| Tailscale Serve/Funnel | Full integration | Full (auto-start/stop tailscale serve, availability check, daemon lifecycle) | **MATCH** | +| Remote gateway access | SSH tunnels + tailnet | Tailscale-only binding + Tailscale Serve | **MATCH** | | Health checks / doctor | 10+ checks | 10 checks | **MATCH** | | `onboard` wizard | Full guided setup | -- | **MISSING** | | Docker deployment | Full | Full (multi-stage Dockerfile, docker-compose.yml) | **MATCH** | | Nix deployment | Full | -- | **MISSING** | -| Shell completion | Auto-detect + cached (v2026.2.3) | -- | **MISSING** | +| Shell completion | Auto-detect + cached (v2026.2.3) | Full (bash/zsh/fish generation + --install flag) | **MATCH** | | Announce delivery mode | Isolated job delivery (v2026.2.3) | -- | **MISSING** | | Fly.io / Railway / Render | Supported | -- | **MISSING** | | Bonjour/mDNS discovery | Full | -- | **MISSING** | -| Gateway lock | Full | -- | **MISSING** | +| Gateway lock | Full | Full (single-client mode, code 4003, UI detection) | **MATCH** | --- @@ -255,16 +255,16 @@ Flynn actually has MCP support that OpenClaw doesn't emphasise — OpenClaw reli | Context/Compaction | 4 | 4 | 0 | 0 | | Memory | 7 | 6 | 0 | 1 | | MCP | 3 | 3 | 0 | 0 | -| Security | 10 | 7 | 0 | 3 | +| Security | 10 | 8 | 0 | 2 | | Automation | 4 | 4 | 0 | 0 | | Companion Apps | 6 | 0 | 0 | 6 | | Skills/Plugins | 5 | 4 | 0 | 1 | -| Gateway/Infra | 13 | 4 | 1 | 8 | +| Gateway/Infra | 13 | 7 | 0 | 6 | | Chat Commands | 6 | 6 | 0 | 0 | | Misc | 10 | 9 | 0 | 1 | -| **TOTAL** | **128** | **95 (74%)** | **1 (1%)** | **32 (25%)** | +| **TOTAL** | **128** | **99 (77%)** | **0 (0%)** | **29 (23%)** | -*Note: Match rate improved from 70% to 74% after implementing Tier 3 features (Lane Queue, credential redaction, Web UI token dashboard, xAI Grok provider, Voyage AI embeddings).* +*Note: Match rate improved from 74% to 77% after implementing Tier 4 features (Gateway lock, shell completion, Tailscale Serve, DM pairing codes).* --- @@ -282,8 +282,15 @@ All four Tier 2 items implemented: inbound webhooks (HTTP POST /webhooks/:name w All five Tier 3 items implemented: Lane Queue (per-session FIFO in gateway), credential redaction (18+ secret fields), Web UI token dashboard (usage page with summary cards), xAI Grok provider (OpenAI-compatible), Voyage AI embeddings (configurable dimensions). +33 new tests. -### Tier 4 — Additional Channels (if desired) +### ~~Tier 4 — Additional Channels (if desired)~~ → Tier 4 — Implemented Features + Remaining Channels +**Implemented (2026-02-09):** +- Gateway lock (single-client mode with code 4003) +- Shell completion (bash/zsh/fish with --install flag) +- Tailscale Serve/Funnel (auto-start/stop with daemon lifecycle) +- DM pairing codes (PairingManager with TTL codes, all 4 channel adapters, gateway handlers, TUI /pair command) + +**Remaining channels (if desired):** 6. Signal (signal-cli bridge) 7. Matrix (matrix-js-sdk) 8. Microsoft Teams (Bot Framework) @@ -298,17 +305,13 @@ All five Tier 3 items implemented: Lane Queue (per-session FIFO in gateway), cre - Voice Wake / Talk Mode — ElevenLabs TTS integration - Nix/Fly.io/Railway deployment — platform-specific - OAuth subscription auth — complex -- DM pairing codes — niche security feature - Skill/plugin safety scanner — static analysis -- Shell completion — CLI ergonomics - Announce delivery mode — isolated job delivery - Bonjour/mDNS discovery — LAN-only use case - MiniMax/Moonshot — regional providers - Synthetic provider — testing/mock - Elevated mode — sandbox escape hatch - Onboard wizard — guided setup -- Gateway lock — single-client mode -- Tailscale Serve/Funnel — native integration - ClawHub/skill registry — community marketplace - QMD backend — experimental memory search - Presence tracking — online/offline status diff --git a/docs/plans/state.json b/docs/plans/state.json index 2cefd7f..a1de15d 100644 --- a/docs/plans/state.json +++ b/docs/plans/state.json @@ -818,6 +818,78 @@ } } }, + "tier4-features": { + "status": "completed", + "date": "2026-02-09", + "summary": "4 Tier 4 features from gap analysis: Gateway lock (single-client mode), shell completion (bash/zsh/fish), Tailscale Serve/Funnel, DM pairing codes (PairingManager + channel adapters + gateway handlers + TUI command)", + "phases": { + "gateway_lock": { + "priority": "Tier4", + "status": "completed", + "description": "Single-client gateway mode — if lock=true and a client is connected, reject new connections with code 4003. UI detects locked state.", + "files_modified": [ + "src/config/schema.ts", + "src/gateway/server.ts", + "src/gateway/server.test.ts", + "src/gateway/ui/lib/ws-client.js", + "src/daemon/index.ts" + ], + "test_status": "4/4 passing" + }, + "shell_completion": { + "priority": "Tier4", + "status": "completed", + "description": "Generate shell completions for bash, zsh, and fish. --install flag writes to appropriate rc file.", + "files_created": [ + "src/cli/completion.ts", + "src/cli/completion.test.ts" + ], + "files_modified": [ + "src/cli/index.ts" + ], + "test_status": "11/11 passing" + }, + "tailscale_serve": { + "priority": "Tier4", + "status": "completed", + "description": "Auto-start tailscale serve on gateway start, auto-stop on shutdown. isTailscaleAvailable() check, doctor integration.", + "files_created": [ + "src/gateway/tailscale.ts", + "src/gateway/tailscale.test.ts" + ], + "files_modified": [ + "src/gateway/index.ts", + "src/daemon/index.ts", + "src/cli/doctor.ts" + ], + "test_status": "6/6 passing" + }, + "dm_pairing_codes": { + "priority": "Tier4", + "status": "completed", + "description": "PairingManager with TTL codes, channel adapter integration (Telegram, Discord, Slack, WhatsApp), gateway pairing handlers (generate/list/revoke), TUI /pair command, daemon wiring.", + "files_created": [ + "src/channels/pairing.ts", + "src/channels/pairing.test.ts", + "src/gateway/handlers/pairing.ts" + ], + "files_modified": [ + "src/channels/index.ts", + "src/channels/telegram/adapter.ts", + "src/channels/discord/adapter.ts", + "src/channels/slack/adapter.ts", + "src/channels/whatsapp/adapter.ts", + "src/config/schema.ts", + "src/gateway/handlers/index.ts", + "src/gateway/handlers/handlers.test.ts", + "src/gateway/server.ts", + "src/daemon/index.ts", + "src/frontends/tui/commands.ts" + ], + "test_status": "22/22 passing (16 pairing + 6 handlers)" + } + } + }, "earlier_plans": { "plans": [ { "file": "2026-02-02-flynn-design.md", "status": "completed" }, @@ -841,7 +913,7 @@ }, "overall_progress": { - "total_test_count": 1034, + "total_test_count": 1077, "all_tests_passing": true, "p0_completion": "3/3 (100%)", "p1_completion": "4/4 (100%)", @@ -855,7 +927,8 @@ "tier1_completion": "5/5 (100%) — !!think prefix, /verbose command, typing indicators (Discord/WhatsApp), session pruning (TTL), tool groups", "tier2_completion": "4/4 (100%) — inbound webhooks, vector memory search, Dockerfile, heartbeat monitor", "tier3_completion": "5/5 (100%) — lane queue, credential redaction, web UI token dashboard, xAI (Grok) provider, Voyage AI embeddings", - "feature_gap_scorecard": "95/128 match (74%), 1 partial (1%), 32 missing (25%)", - "next_up": "All phases P0-P8 and Tiers 1-3 complete. Local model tool calling added. Remaining gaps: Tier 4 channels (Signal, Matrix, Teams, Google Chat), Tier 5 deferred/niche items" + "tier4_completion": "4/4 (100%) — gateway lock, shell completion, Tailscale Serve/Funnel, DM pairing codes", + "feature_gap_scorecard": "99/128 match (77%), 0 partial (0%), 29 missing (23%)", + "next_up": "All phases P0-P8 and Tiers 1-4 complete. Local model tool calling added. Remaining gaps: Tier 4 channels (Signal, Matrix, Teams, Google Chat), Tier 5 deferred/niche items" } }