Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nudj.cx/llms.txt

Use this file to discover all available pages before exploring further.

🟑 Release v2.350.1

⭐⭐ Moderate Complexity β€’ 4 commits β€’ 32 files changed
Introducing Ask Nudj Widget β€” bring AI-powered assistance directly into the admin panel with multi-tab chat, voice support, and conversation history. This release also fixes critical HTTP protocol compliance issues in the API proxy route that prevent header conflicts on Cloudflare-fronted deployments.

What’s New

  • Ask Nudj Widget in Admin Panel β€” Get intelligent help while configuring challenges, rewards, and gamification features directly from the admin interface
  • Multi-Tab Chat Management β€” Organize conversations into tabs, maintain separate chat histories, and switch between topics seamlessly
  • Voice-Enabled Chat β€” Use voice commands in Ask Nudj for hands-free operation and real-time transcription
  • HTTP Protocol Compliance Fix β€” Strip hop-by-hop headers in API proxy routes to prevent transfer-encoding header conflicts and InvalidArgumentError exceptions
  • Streaks Visibility Toggle Persistence β€” Configuration now saves correctly when toggling streak visibility in admin settings

Apps Updated

User App

βœ“ Updated - HTTP proxy reliability improvements

API

β€” No changes

Admin

βœ“ Updated - Ask Nudj widget, streaks persistence

MCP Server

β€” No changes

Website

β€” No changes

Games

β€” No changes

Detailed Changes

Ask Nudj Widget Integration

  • New Multi-Tab Chat Interface β€” Open multiple concurrent conversations with Ask Nudj, each maintaining separate message histories
  • Chat History Management β€” Access previous conversations, search chat history, and organize chats by date
  • Background Tab Processing β€” Chat remains active even when switching between admin panels, enabling long-running AI operations
  • Voice Integration β€” Leverage ElevenLabs Conversational AI SDK for bidirectional voice chat with real-time transcription
  • Pin & Organize β€” Pin important conversations to access them quickly, minimize widget to focus on admin tasks
  • Rich Chat UI β€” Dropdown menu for chat actions (copy, delete, mark as read), status indicators, and visual feedback

UI Refactoring

  • Replaced onboarding guide carousel with integrated Ask Nudj widget
  • Removed legacy nav-user.tsx component, consolidating navigation
  • Updated sidebar layout to accommodate Ask Nudj widget positioning

Streaks Configuration

  • Fixed Streaks Visibility Toggle β€” Setting now persists correctly when saving community settings
  • Configuration changes apply immediately without requiring page refresh

Test Coverage

  • Comprehensive test suite for Ask Nudj widget tab state management
  • Background tab scenario testing to ensure chat continues while switching panels
  • Integration tests for community data context in chat operations

HTTP Protocol Compliance Fix

  • Hop-by-Hop Header Stripping β€” API proxy route now correctly removes RFC 7230 hop-by-hop headers (transfer-encoding, connection, keep-alive, etc.)
  • Production Incident Resolution β€” Fixes InvalidArgumentError: invalid transfer-encoding header that occurred when forwarding proxied requests through Cloudflare-fronted deployments
  • Header Security β€” Strips cookies and client-supplied auth tokens from proxied requests, allowing routes to inject authentication explicitly

Implementation Details

  • New buildForwardedHeaders() utility function manages header filtering
  • Comprehensive test coverage for header transformation logic
  • Maintains upstream host override to prevent host header conflicts

Technical Details

Ask Nudj Widget Architecture

The new Ask Nudj widget replaces the onboarding carousel with a sophisticated chat interface:
  • Tab State Management β€” ask-nudj-tab-state.ts handles unread indicators, load states, and completion tracking per tab
  • Persistent Chat Sessions β€” Each tab maintains clientSessionId for message continuity and history recovery
  • ElevenLabs Integration β€” Bidirectional voice agent using Vercel AI SDK with streaming support
  • Background Processing β€” Tabs remain active in the background, enabling multi-task admin workflows

HTTP Proxy Header Filtering

The hop-by-hop header fix prevents a class of production errors:
// RFC 7230 Β§6.1 hop-by-hop headers that cannot be forwarded
const HOP_BY_HOP_HEADERS = [
  "connection", "keep-alive", "proxy-authenticate", 
  "proxy-authorization", "te", "trailer", 
  "transfer-encoding", "upgrade", "content-length"
];

// Strips headers + allows explicit auth injection
buildForwardedHeaders(inboundHeaders, upstreamHost);
Why it matters: When a proxy forwards a request with transfer-encoding: chunked but supplies a fixed-size body buffer, undici (Node.js HTTP client) throws InvalidArgumentError. Cloudflare-fronted tenants were most affected because Cloudflare’s intermediate proxies sometimes add transfer-encoding headers.

Contributors

jamescockayne@jamescockayne2 commits β€’ +172/-23 lines

erek_d@me.com@erek_d@me.com1 commit β€’ +3,316/-1,402 lines

Release Stats

MetricValue
Total Commits4
Lines Added+3,780
Lines Removed-1,426
Files Changed32
SizeMedium 🟑
ComplexityModerate ⭐⭐

v2.350.1 deployed on May 21, 2026