twilio: rewrite typing indicator with direct API calls and robust retry#19
Closed
joaohlisboa wants to merge 1 commit intoopenclaw:mainfrom
Closed
twilio: rewrite typing indicator with direct API calls and robust retry#19joaohlisboa wants to merge 1 commit intoopenclaw:mainfrom
joaohlisboa wants to merge 1 commit intoopenclaw:mainfrom
Conversation
The Twilio SDK's request method wasn't working for the typing indicator API. This rewrites the implementation to use direct fetch() calls with comprehensive error handling and retry logic. Key changes: - Switch from SDK to direct fetch() with Basic auth - Add time-based retry loop (30s budget) for MDR propagation delays - Add 10s per-request timeout via AbortController to prevent hangs - Add exponential backoff with jitter (1s-5s, +200ms jitter) - Track succeeded SIDs to skip retry on refresh calls - Add typed errors (NetworkError, FetchTimeoutError) for proper handling - Fail fast on non-retryable errors (401, 403, non-MDR 400) - Fire-and-forget pattern to avoid blocking reply flow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
I'm sorry but I killed Twilio - it's not sth I use so I don't wanna maintain it. Better keep your own fork for this. |
dgarson
referenced
this pull request
in dgarson/clawdbot
Feb 2, 2026
feat(landing): mobile navigation, back-to-top, accessibility improvements
Security Fixes Applied ✅Addressed the findings from security audit CRITICAL-001: Supply Chain - beads_rust Pinning
MEDIUM-001: Environment Variable Sanitization
Remaining Items (Accepted Risks)
The PR is now safe to merge. The beads auto-install feature will:
🤖 Commit: cde30b01b |
alexprime1889-prog
pushed a commit
to alexprime1889-prog/moltbot
that referenced
this pull request
Feb 8, 2026
… was not being compiled
frodo-harborbot
added a commit
to harborworks/openclaw
that referenced
this pull request
Feb 16, 2026
- Drop tasks and task_comments tables - Remove task/comment controllers, routes, DB queries - Remove BoardPage, TaskDetailSheet, CreateTaskDialog - Remove stale-task-check daemon job - Simplify notifications (message text instead of task/comment FKs) - Default route now points to /secrets - Navbar renamed to Harbor
|
@claude please review this PR |
ivanuser
added a commit
to ivanuser/cortex
that referenced
this pull request
Feb 23, 2026
…w#19, openclaw#20) Issue openclaw#20 — Token Auth: - Gateway accepts ctx_ API tokens in connect handshake - Valid ctx_ tokens bypass device identity and pairing entirely - Security role derived from token's role - Added authMode field to connection (device/token) - UI: SetupWizard and AuthDialog support token input - UI: gateway.ts skips device identity for ctx_ tokens - Stored in localStorage as cortex:authToken Issue openclaw#19 — Auto-Approve First Device: - First device on fresh install is auto-approved with admin role - No manual approval needed for initial setup - Audit logged as device.first-device-auto-approved - securityRole field added to PairedDevice type Also includes: invite system, pairing codes, QR pair modal
dalefrieswthat
pushed a commit
to dalefrieswthat/openclaw
that referenced
this pull request
Feb 25, 2026
* feat(ui): Agent configuration experience — gateway hooks, file editors, LLM assist, auto-review Major additions to the OpenClaw web UI: Gateway Integration Layer: - gateway-hooks.ts: React Query integration for all gateway RPC methods - Typed query/mutation hooks for agents, config, models, sessions, skills, etc. - Gateway event subscription hook for real-time updates Agent Configuration Experience: - AgentConfigPage: Tabbed config with progressive disclosure - SoulEditor: SOUL.md editor with split view and markdown preview - AgentFileEditor: Generic file editor for workspace files - AgentOverviewConfig: Identity card, file health, suggestions - Route: /agents/:agentId/configure LLM Assist Panel: - Conversational AI sidebar for configuration help - Context-aware suggestions per config section - Apply changes directly from suggestions Auto-Review Panel: - One-click config analysis with score/grade - Actionable fix suggestions Updated hooks and navigation to connect config flow. * fix(ui): lint cleanup — remove unused imports, prefix unused params - AutoReviewPanel: remove unused AnimatePresence, CardDescription; prefix unused params - SkillConfigurator: remove unused AnimatePresence, Button; prefix agentId - AgentConfigPage: remove unused AlertTriangle, RefreshCw, AGENT_FILES; wire SkillConfigurator into skills tab - LLMAssistPanel: remove unused RefreshCw, ScrollArea, Separator; prefix agentId - ModelBehaviorConfig: prefix unused isLoading param - ModelSelector: remove unused Badge; prefix placeholder param - useAgents: prefix unused isDefault param, fetchAgentsFromConfig fn * perf(ui): split @xyflow into separate vendor chunk @xyflow (React Flow for DAG visualization) was bundled into the vendor-react chunk despite only being used on workstream/workflow pages. Moving it to vendor-xyflow isolates 122 kB that's only loaded when needed. Before: vendor-react 557 kB (everything) After: vendor-react 433 kB + vendor-xyflow 122 kB (lazy) * feat(ui): content-shaped page skeletons for improved perceived performance Add page-specific skeleton loading states that match actual content layout: - HomeSkeleton: greeting, quick chat, agent grid, panel layout - AgentListSkeleton: header + search + 3x3 card grid - AgentDetailSkeleton: back nav, agent header, tabs, stats, content area - ConversationListSkeleton: sidebar + empty state - ChatThreadSkeleton: header, message bubbles pattern, input bar - SettingsSkeleton: sidebar nav + settings content - WorkstreamsSkeleton: header, filter tabs, workstream cards Wire AgentDetailSkeleton into /agents/[agentId] route. * fix(ui): UX polish — branding, cleanup, Skills route, container consistency - Fix sidebar branding: 'Second Brain' → 'OpenClaw', logo initial 'S' → 'O' - Remove 211 'use client' directives (Next.js artifact, meaningless in Vite) - Fix homepage greeting: remove hardcoded 'User!' placeholder - Normalize container patterns in Nodes and Jobs pages (remove redundant min-h-screen/max-w-7xl wrappers — AppShell already provides these) - Add new /skills route with full CRUD: list, search, filter, enable/disable, install from URL/ClawhHub, uninstall, detail panel with config view - Add Skills nav item to sidebar under Team section - All changes use existing gateway hooks and API layer (no new APIs needed) - Build passes cleanly (6.71s) * feat(ui): mobile bottom navigation for responsive layout - Add MobileBottomNav component with Home, Chat, Agents, Settings tabs - 'More' tab opens full sidebar as a slide-out sheet - Visible only on screens < md (768px), hidden on tablet/desktop - Auto-hides on fullscreen pages (onboarding, unlock) - Add bottom padding to content area on mobile to prevent nav overlap - Respects safe-area-inset for notched devices - Export from layout index * feat(ui): add Logs route and mobile navigation improvements - Add /logs route with log stream viewer (Power User mode) - Level filtering (trace/debug/info/warn/error/fatal) with counts - Search/filter by message or subsystem - Auto-scroll toggle, pause/resume stream - Export filtered logs as text file - Color-coded log levels with appropriate icons - Monospace font, compact density for log readability - Add Logs nav item to sidebar Power User section - Uses sample data for UI development; ready for gateway integration * fix(ui): rebrand Second Brain → OpenClaw, use profile name on home page - Sidebar: Updated logo text from 'Second Brain' to 'OpenClaw' - Home page: Reads user display name from profile settings instead of hardcoded 'User!' - Filesystem: Updated API endpoint and config references to openclaw.ai - App.tsx: Updated sandbox page branding Files changed: - /Users/openclaw/openclaw-ui-redesign/apps/web/src/components/layout/Sidebar.tsx - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routes/index.tsx - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routes/filesystem/index.tsx - /Users/openclaw/openclaw-ui-redesign/apps/web/src/App.tsx * feat(ui): add /logs route — real-time gateway log streaming - New route: /logs with polling-based log tail via gateway 'logs.tail' RPC - Features: level filtering (trace/debug/info/warn/error/fatal), text search, auto-follow, pause/resume, export to JSONL, entry counts per level - Dark terminal-style UI with color-coded log levels - Added to sidebar Power User section with ScrollText icon - Handles disconnected state gracefully Files changed: - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routes/logs/index.tsx (new) - /Users/openclaw/openclaw-ui-redesign/apps/web/src/components/layout/Sidebar.tsx - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routeTree.gen.ts (auto-generated) * feat(ui): add /analytics route — usage dashboard with token/cost/model/agent breakdowns - New route: /analytics with gateway 'sessions.usage' + 'usage.cost' RPC - Features: date range picker, stat cards (tokens/cost/messages/tools), daily bar charts (tokens + cost), model/agent/tool breakdowns with progress bars, full session table with sort-by-cost, expand/collapse - Token and cost breakdown cards showing input/output/cache splits - Responsive grid layout, loading skeletons, disconnected state - Added to sidebar Power User section with BarChart3 icon Files changed: - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routes/analytics/index.tsx (new) - /Users/openclaw/openclaw-ui-redesign/apps/web/src/components/layout/Sidebar.tsx - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routeTree.gen.ts (auto-generated) * fix(ui): add TanStack Router errorComponent on root route - RouteErrorComponent wraps ErrorFallback with router-aware recovery - 'Try Again' invalidates the current route (re-fetches data) - 'Go Home' navigates to / via router (no full page reload) - Complements existing React ErrorBoundary for render-crash recovery File changed: - /Users/openclaw/openclaw-ui-redesign/apps/web/src/routes/__root.tsx * a11y: skip nav, reduced motion, keyboard support, ARIA landmarks, live region announcer - Add SkipNavLink + SkipNavContent for keyboard users to bypass sidebar (WCAG 2.4.1) - Add ReducedMotionProvider wrapping app root — respects prefers-reduced-motion (WCAG 2.3.3) - Add role/tabIndex/onKeyDown to 6 interactive non-button elements: ToolCategorySection, ConversationItem, MemoryCard (2 variants), agent-plan task toggle, GatewaySetupStep radio cards - Add focus-visible ring styles to all fixed elements - Add aria-label/role='navigation' to Sidebar landmark - Add aria-expanded/aria-controls to expandable sections - Add useAnnounce hook + useRouteAnnouncer for screen reader live regions - Build verified: 7.03s, no errors * a11y: route change announcer + dynamic document.title - Announce navigation to screen readers via useAnnounce live region - Update document.title on route changes (e.g. 'Settings — OpenClaw') - Derives human-readable page name from URL path segment - WCAG 4.1.3: Status Messages compliance * feat(ui): agent activity feed widget on home dashboard - New AgentActivityFeed component with real-time agent activity stream - Shows agent avatar, activity type (7 types), description, relative timestamp - Color-coded activity icons: session started, message sent, tool called, task completed, task failed, agent spawned, file edited - Auto-refresh every 30s with live indicator pulse - Proper empty state with guidance text - ARIA: role=feed, role=article, aria-labels, semantic time elements - Mock data hook (useAgentActivity) ready for real API swap - Replaces placeholder widget on home page grid - Build: 6.96s, no errors * feat(ux): agent status indicators on avatars (openclaw#19) Add reusable AgentStatusDot component with Framer Motion pulse animations and useAgentStatus hook for deriving display status from agent store data. Status types: - Online (green, slow pulse): active within last 5 minutes - Busy (amber, fast pulse): currently processing or awaiting approval - Offline (gray, static): inactive - Error (red, static): error state Integrated into: - AgentAvatar (composed) — shared avatar used across the app - AgentCard (compact + expanded variants) — home grid and agent list - AgentSessionsIndicator — sidebar waiting-agents popover Includes auto-expiry timer in useAgentStatus that transitions online → offline when lastActive exceeds the 5-minute threshold. * feat(ux): keyboard shortcuts discoverability badge (openclaw#18) Changes landed in c6a1309 (co-committed with openclaw#19). Summary of changes: - apps/web/src/hooks/useShortcutsSeen.ts (new) localStorage-gated hook (key: oc_shortcuts_seen) tracking first-visit state - apps/web/src/hooks/index.ts Export useShortcutsSeen from hooks barrel - apps/web/src/providers/ShortcutsProvider.tsx Add ShortcutsContext exposing openShortcutsModal / shortcutsSeen / markShortcutsSeen; mark as seen whenever modal opens via keyboard, button, or command palette - apps/web/src/providers/index.ts Export ShortcutsContext and useShortcutsContext - apps/web/src/components/layout/Sidebar.tsx Add KeyboardShortcutsButton with Framer Motion pulsing dot + 'NEW' badge; button calls openShortcutsModal from context; dot/badge auto-dismiss on first open - apps/web/src/components/composed/CommandPalette.tsx Add footer hint: 'Press ? to see all keyboard shortcuts' * fix(a11y): dark mode color contrast improvements (openclaw#20) - Remove all text-muted-foreground opacity modifiers (/40, /50, /60, /70, /80) that caused WCAG AA failures in dark mode. Replaced with full-opacity text-muted-foreground which passes at 6.16:1 on background and 5.81:1 on card. - Add dark: overrides for hardcoded Tailwind gray/slate text colors: - text-gray-500 → dark:text-gray-400 (4.13:1→7.86:1) - text-gray-600 → dark:text-gray-400 (2.64:1→7.86:1) - text-slate-500 → dark:text-slate-400 (4.19:1→7.78:1) Affected components: 25 files across composed, domain, and route layers. Key contrast ratios (before → after on --background): muted-foreground/40: 1.88:1 → 6.16:1 muted-foreground/50: 2.32:1 → 6.16:1 muted-foreground/60: 2.85:1 → 6.16:1 muted-foreground/70: 3.52:1 → 6.16:1 muted-foreground/80: 4.27:1 → 6.16:1 gray-500: 4.13:1 → 7.86:1 (via gray-400) gray-600: 2.64:1 → 7.86:1 (via gray-400) slate-500: 4.19:1 → 7.78:1 (via slate-400) * feat(i18n): internationalization infrastructure with en/pt-BR/zh-CN/zh-TW (openclaw#11) - Add react-i18next, i18next, i18next-browser-languagedetector dependencies - Create i18n setup with language detection, localStorage persistence, en fallback - Add 4 locale files (en, pt-BR, zh-CN, zh-TW) with ~75 key strings each: - common actions (Save, Cancel, Delete, Create, etc.) - navigation labels (Home, Conversations, Goals, Memories, etc.) - home dashboard greetings and section titles - settings section headings and appearance labels - error messages - agent status labels - Import i18n initialization in main.tsx (before component tree) - Integrate useTranslation in 5 key components: - Sidebar: all nav labels and section titles - AppearanceSection: all labels + language selector with 4 language options - HomePage: time-of-day greeting - SettingsPage: page title and subtitle - YouPage: page title and subtitle - Language selector in You > Appearance with live switching * feat(ui): Monaco editor component with lazy loading, fallback textarea, Cmd+S save binding * fix(build): clear postcss.config.mjs — Tailwind v4 handled by @tailwindcss/vite plugin, not PostCSS * chore: update pnpm-lock.yaml for @monaco-editor/react dependency * feat(ui): activity heat map on agent-status route (openclaw#14) * feat(ui): agent relationship graph visualization (openclaw#13) - New route /agents/graph with live agent data from gateway - Parses session key patterns to infer spawn/delegation edges - ReagraphView integration with custom health-based node coloring - CSS fallback tree view when reagraph unavailable - Slide-in detail panel on node click: task, model, tokens, cost, links - Stats bar: total agents, active count, tokens, cost - Legend: health colors + spawn edge indicator - Back link to /agents, 15s auto-refresh - Added Network icon + Agent Graph link to sidebar Team section - Removed duplicate Logs entry from Power User section * feat(ui): chat-driven agent builder at /agents/new (openclaw#15) - New /agents/new route: conversational interface for agent creation - Split-panel: chat on left, live config preview on right - NLP parser: extracts name, role, tags, model, personality from freetext - Keyword inference for 8 roles (Monitor, Researcher, Developer, etc.) - Domain tag extraction for 15 platforms (github, slack, discord, email, etc.) - Model preference detection (opus, haiku, gpt-4, gemini, grok) - Personality trait extraction (concise, thorough, friendly, etc.) - Config preview: flash-highlights fields as they update (framer-motion) - Tags: editable inline with + input and × remove button - All fields manually editable in preview panel - Readiness checklist: name + description = ready to create - 5 suggested starter prompts (GitHub monitor, research, code review, etc.) - Animated typing indicator while processing - useCreateAgent() integration → navigates to agent config after creation - 'Chat Builder' secondary button added to agents list page header - Simple markdown renderer for **bold** and `code` in assistant messages * fix(ui): correct createAgent status field + add Graph View link to agent-status header - Chat builder: pass required status: 'offline' to createAgent.mutateAsync (Agent interface requires status, new agents start offline) - Agent Status dashboard: add 'Graph View' ghost button linking to /agents/graph (natural navigation path from status dashboard → relationship graph) * chore(ui): remove Next.js 'use client' directives from Vite project 8 files had 'use client' at the top — a Next.js App Router directive that is meaningless in Vite/React. Strips as dead noise. No behavior change. * docs: add approvals + milestone feed design doc Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add approvals + milestone feed implementation plan Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update plan with tsc-per-task, tests-only-at-end strategy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(approvals): add ApprovalItem component * feat(approvals): add ApprovalsQueue with compact/full modes and agent grouping * feat(approvals): add MilestoneItem and MilestoneDetailPanel * feat(ui): redesign layout, session view, and nav components Redesigns the app shell, sidebar, nav items, session workspace, and agent status pages with updated visual styling. Adds TerminalOverlay component and updates NewSessionDialog, SessionHeader, and related routes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(approvals): add MilestoneFeed with date grouping * feat(approvals): add InboxPanel slide-out with compact approvals + milestones * feat(approvals): add inbox icon + badge to sidebar * feat(approvals): add /approvals page with full queue and milestone feed * docs: add Configure tab redesign design doc Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(ui): fix calendar icon color, reassign button, pill heights, and arrow styling - Fix black native calendar picker icon on dark theme with CSS invert filter - Add prominent Reassign button with UserCog icon to agent assignment card in RitualDetailPanel - Align date/time content text with label text in schedule info cards (pl-6 indent) - Normalize execution pill font size to text-xs so Status, Tool Calls, and Token/Cost share the same height - Reduce TokenCostIndicator padding by 50% (px-3 py-1 → px-1.5 py-0.5) - Improve arrow button visibility in Recent Executions with muted-foreground color Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add Configure tab redesign implementation plan Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(approvals): reuse GoalDetailPanel in MilestoneFeed with highlightMilestoneId prop * fix(inbox): widen panel to 520px and add Open Inbox link in header * feat(agents): add embedded prop to AgentConfigPage * feat(agents): add AgentConfigureTab with nested builder/rituals/tools sub-tabs * chore(agents): export AgentConfigureTab from barrel * feat(agents): replace Rituals/Tools/Soul tabs with Configure nested tab panel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(goals): add Edit button to Goal Details panel with working edit modal - Add headerActions slot to DetailPanel so callsites can inject title-bar buttons - Add Edit icon button in GoalDetailPanel title bar (visible without scrolling) - Remove goal.status !== 'completed' guard so any goal can be edited - Extend CreateGoalModal with edit mode: initialGoal prop pre-populates all fields, milestones preserve original IDs and completion state, title/CTA reflect edit context - Wire GoalsPage: handleEdit opens the shared modal in edit mode via useUpdateGoal Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(ids): consolidate all UUID generation to uuidv7 Replace crypto.randomUUID() in new.lazy.tsx and the custom generateUUID() utility in gateway-client.ts with the project-standard uuidv7() from @/lib/ids. Also convert WebSocket on* property handlers to addEventListener calls and remove unused Card/CardContent imports surfaced during linting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(assist): add rituals section prompts to LLMAssistPanel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(sidebar): increase collapsed icon hit area and nav item spacing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(agents): lift assist/review state and fix embedded padding in AgentConfigPage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(agents): lift AI Assist and Auto Review to AgentConfigureTab level Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(agents): edit button navigates to configure tab, persist configureTab in URL Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(agents): remove AgentSoulTab, consolidated into SoulEditor guided mode Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(ui): follow-ups + ph1 tab config Follow-ups: - GoalDetailPanel: add pl-6 indent to Due Date + Created content text - RitualScheduler: fix dark time input picker icon with CSS invert filter - RitualDetailPanel: add Trigger quick-action to DetailPanel headerActions slot - RitualsPage: wire onReassign → RitualAssignDialog (full agent reassignment flow) - Export RitualAssignDialog + RitualAssignPayload from rituals barrel Phase 1: - Add src/config/agent-tabs.ts with AGENT_TABS config, isValidTab(), resolveTab(), and TAB_REDIRECTS backwards-compat map for old tab URL params Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): ph5 inheritance system - useInheritanceStore, InheritanceBadge, InheritableField Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): ph2 new tab components - AgentWorkTab, AgentChatTab, WorkSubNav Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): ph4 persona tier system - FeatureGate, usePersonaStore, PersonaTierSection Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): ph3 - wire 5-tab structure into $agentId route Replaces local AgentDetailTab type with imported type + resolveTab() from config/agent-tabs.ts. Swaps workstreams tab for work (AgentWorkTab with WorkSubNav) and adds chat tab (AgentChatTab). Old URL params like ?tab=workstreams and ?tab=rituals are resolved to 'work' via TAB_REDIRECTS. Section param threaded through for WorkSubNav sub-navigation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): ph6 - responsive tab triggers and MobileTabNav Tab triggers now show icon+label stacked on mobile (grid-cols-5) and side-by-side on sm+. MobileTabNav provides a fixed bottom nav bar on mobile (hidden sm+) with the same 5-tab structure from AGENT_TABS. Bottom padding added to page content to prevent overlap with the bar. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(agents): update AgentConfigureTab tests for rewritten component * chore(agents): remove unused filesLoading destructure in AgentConfigureTab Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(agents): sync AgentConfigureTab sub-tab with URL on back/forward navigation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(routes): remove orphaned /agents/$agentId/configure full-page route Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): expand command palette - full action vocab + NL intent (task 2) * feat(ui): live RPC-connected onboarding wizard (task 1) * test(ui): ph8 unit tests for tab config, stores, and feature gate components Add vitest setup fixes (in-memory localStorage mock + jsdom URL) to make zustand persist middleware work in tests, and update usePersonaStore tests to avoid replace=true state reset that strips action functions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): visual agent config editor - identity/model/memory/thinking (task 3) * Add isSlackId function to validate Slack IDs * Refactor Slack ID validation to use normalizeSlackId --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
songliu0403-rgb
pushed a commit
to songliu0403-rgb/openclaw
that referenced
this pull request
Feb 26, 2026
emmalone
added a commit
to emmalone/openclaw
that referenced
this pull request
Mar 1, 2026
…penclaw#19) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
benieralexis-sudo
pushed a commit
to benieralexis-sudo/openclaw
that referenced
this pull request
Mar 1, 2026
CRITICAL fixes: - openclaw#1-2: HITL race conditions — _inFlight lock on Telegram + Dashboard API (409 Conflict) - openclaw#3: Storage JSON.parse crash protection — backup corrupt files + reset to defaults - openclaw#4: Lead Enrich waterfall — Apollo fallback when FullEnrich fails + email validation - openclaw#5: Meeting Scheduler — remove hardcoded fallback, require CALCOM_USERNAME env - openclaw#6: Self-Improve — clamp scoring weights 0-2.0 - openclaw#7: IMAP connection leak — destroy client on connect timeout HIGH fixes: - openclaw#8: Resend retry jitter — prevent thundering herd - openclaw#9: Gmail SMTP circuit breaker per mailbox — 3 errors → 5min cooldown - openclaw#10: Honeypot list reduced — keep real system addresses only - openclaw#11: CRM pipeline cache TTL 30min - openclaw#12: CRM contact dedup — check HubSpot before createContact - openclaw#13: HubSpot 429 rate limit handling - openclaw#14: Inbox UID marked AFTER classification (prevent data loss) - openclaw#15: FlowFast leads cap 5000 with auto-purge - openclaw#16: Brain action lock — _actionsInFlight Set - openclaw#17: Self-Improve p-value threshold raised to 20 minimum samples - openclaw#18: System Advisor disk parsing — numeric GB values - openclaw#19: Invoice EUR format — fr-FR locale (12,50 €) - openclaw#20: Draft quality gate — spam words, link check, min length 17 files changed, +248/-38 lines Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Techris93
added a commit
to Techris93/openclaw
that referenced
this pull request
Mar 5, 2026
Add the following audit findings: - gateway.token_no_expiry (T-PERSIST-004) - fs.config.inside_git_repo (T-ACCESS-003) - env.dangerous_vars_set (T-DISC-004) - tools.web_fetch.no_url_allowlist (T-EXFIL-001) - gateway.no_message_rate_limit (T-IMPACT-002) 17 new tests, 91 existing tests pass (0 regressions). Fixes openclaw#16, openclaw#17, openclaw#18, openclaw#19, openclaw#20
benieralexis-sudo
pushed a commit
to benieralexis-sudo/openclaw
that referenced
this pull request
Mar 6, 2026
MOYENS (16): - openclaw#1 generateReactiveFollowUp maxLength string vs number — aligne sur string - openclaw#2 Multi-threading mort — filtre sur mappedLeads (avec score) au lieu de result.leads - openclaw#3 _checkEmailSpecificity null safety — (prospectIntel || '').match() - openclaw#4 totalContacts pre-dedup — utilise addedCount - openclaw#5 Bounces tous hard_bounce — distinction soft/hard, soft = retry pas blacklist - openclaw#8 _isSystemEmail includes() trop large — exact match + prefix patterns - openclaw#10 sendBatch bypass warmup — recordSend dans domain-manager apres chaque envoi - openclaw#11 Domain manager parsing ':' dans password — split limite a 4 segments - openclaw#12 prospectDomains jamais nettoye — cleanup LRU max 2000 entries - openclaw#13 trackNicheEvent('clicked') ignore — ajout compteur clicked - openclaw#14 apStorage.getLeads() inexistant — utilise automailer storage.getEmails() - openclaw#25 Interval HITL drafts jamais cleared — clearInterval dans gracefulShutdown FAIBLES (9): - openclaw#17 Retry skip prompt 25-35 mots → aligne sur 50-65 mots 4-blocs - openclaw#18 _scoreAndFilter gate 60 mots → 80 mots (coherent avec prompts) - openclaw#19 "curieux d'avoir ton retour" autorise dans follow-ups → remplace - openclaw#20 seniorities priorite inversee → brain > config - openclaw#21 data.growth jamais active → detecte via employee count + multi-country - openclaw#23 Fallback plan non-pondere → utilise icp-loader.getNicheForCycle() - campaign-engine: double updateEmailStatus pour opened → supprime appel redondant Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
elliot-ylambda
added a commit
to elliot-ylambda/magister-openclaw
that referenced
this pull request
Mar 7, 2026
…t-ui feat: add auth, billing, and chat UI (Phases 1-4)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Twilio SDK's
requestmethod wasn't working for the typing indicator API (returns success but indicator never shows). This PR rewrites the implementation to use directfetch()calls with comprehensive error handling and retry logic.What changed
fetch()with Basic authAbortControllerto prevent infinite hangsNetworkErrorandFetchTimeoutErrorfor proper error discriminationWhy the SDK didn't work
The Twilio SDK's generic
request()method appears to have issues with the/v2/Indicators/Typing.jsonendpoint. Directfetch()calls with proper Basic auth work reliably.Technical details
INITIAL_MDR_DELAY_MSMAX_TOTAL_RETRY_TIME_MSFETCH_TIMEOUT_MSBASE_RETRY_DELAY_MSMAX_RETRY_DELAY_MSJITTER_MAX_MSFiles changed
src/twilio/typing.ts- Complete rewrite with new implementationsrc/twilio/webhook.ts- Updated to pass credentials instead of clientsrc/auto-reply/reply.ts- Updated typing indicator call signaturesrc/twilio/types.ts- Added headers field to request optionssrc/twilio/update-webhook.ts- Fixed request format for consistencysrc/index.core.test.ts- Updated test for new APITest plan
pnpm buildpassespnpm lintpassespnpm testpasses (295/295 tests)🤖 Generated with Claude Code