xeref.ai logo
xeref.ai
Changelog

What's new

Release history for xeref.ai — from newest to oldest.

v2.3

LatestApril 26, 2026
New
  • Code session history — sessions are now persisted to Supabase and appear in a collapsible "History" section in the Code tab sidebar, mirroring the Chat "Recents" pattern
  • Session resume on refresh — the active code session ID is stored in localStorage and restored on page reload, automatically reloading messages from the database
  • Inline session management — hover any history item to reveal a "⋮" menu with Rename (inline edit) and Delete actions
  • Repo required validation — submitting a message without selecting a GitHub repository now shows an animated red warning "Select a repo first" above the input instead of silently failing
  • GitHub repo button state feedback — the repo selector now highlights with a primary-colored border when a repository is selected
Fixed
  • Radix UI hydration mismatch — sidebar is now loaded client-only via next/dynamic with ssr:false, eliminating useId() ID mismatches between server HTML and client render
  • Pinned/Recents section guarded by isHydrated — the Radix-heavy dropdown section no longer renders until localStorage has loaded, providing defense-in-depth against hydration errors
  • New session button now resets selectedSessionId to null (blank session) while preserving previous sessions in History
  • Code session messages now reload when switching between sessions without a full page refresh
Architecture
  • app/actions/code-sessions.ts — new server actions: getUserCodeSessions, renameCodeSession, deleteCodeSession
  • Supabase migration: updated_at column + auto-update trigger added to code_sessions table
  • CodeSession interface added to lib/types.ts
  • GitHubRepoButton refactored to a controlled component — accepts selectedRepo and onRepoSelect props for parent-driven state
  • DashboardShell: selectedSessionId and codeSessions state wired through to Sidebar and CodeSessionView
  • CodeSessionView: accepts onSessionCreated callback, reloads messages reactively on sessionId prop changes

v2.2

April 25, 2026
New
  • Classroom view — structured course browser with Courses → Modules → Lessons hierarchy, markdown lesson reader, per-lesson progress tracking, and admin content authoring controls (create/edit/delete courses, modules, and lessons inline)
  • Semantic search powered by Gemini Embedding 2 (text-embedding-004) and Pinecone — lesson content is indexed on save and searchable with real-time debounced queries against the xeref_lessons namespace
  • Memory view — document brain scaffold with drag-and-drop upload area and coming-soon chips for OCR ingestion and semantic search
  • Projects, Deploy, and Inbox dashboard sections promoted from COMING SOON to LIVE
Architecture
  • Added 'classroom' and 'memory' to ViewKey in lib/types.ts; new Course, CourseModule, Lesson, LessonProgress interfaces
  • Supabase migration: courses, modules, lessons, lesson_progress tables with RLS — admin write restricted to bugra@bugrakarsli.com and bugra@xeref.ai
  • lib/pinecone.ts — Pinecone integrated inference helpers (upsertRecords / searchRecords) using multilingual-e5-large — no separate embedding API needed
  • POST /api/classroom/embed — admin-gated lesson embedding trigger
  • GET /api/classroom/search — authenticated semantic search endpoint
  • app/actions/classroom.ts — full CRUD + progress server actions
  • New package: @pinecone-database/pinecone (integrated inference — multilingual-e5-large, dense vectors, cosine metric)

v2.1

April 22, 2026
New
  • MCP server v1 — POST /api/mcp bearer-token-authenticated endpoint exposing list/create/update/delete for projects, tasks, and notes, plus suggest_next_task
  • getMcpToken / regenerateMcpToken / saveTelegramBotToken server actions
  • Settings view: MCP token card with show/hide, copy, and regenerate controls
  • Deploy view — new DeployView with Telegram bot setup wizard; accessible via Deploy nav item under the tasks tab
  • POST /api/bots/telegram/register — validates bot token and calls Telegram setWebhook
  • POST /api/bots/telegram/[userId] — receives Telegram updates and routes them through the chat API
Architecture
  • Added 'deploy' to ViewKey in lib/types.ts
  • Supabase migration: mcp_token (unique) and telegram_bot_token columns added to profiles table
Fixed
  • Creem checkout action: removed hardcoded redirect URI that caused OAuth mismatch in local dev
  • Login page simplified — stripped redundant layout wrappers
  • Local environment permissions configured

v2.0

April 18, 2026
New
  • /design route — full design system management with sidebar, panels, and modals for creating, editing, and previewing design systems
  • Artifact management system — browse, preview, and inspect saved artifacts with split-pane detail view, version history, and capability badges
  • /artifacts/my page — dedicated artifact library with list and detail views
  • Global search popup — Cmd/Ctrl+K command palette for fast navigation across projects, chats, and views
  • Chat-based workflow triggers — automation workflows can now be launched directly from the chat interface
Architecture
  • Zustand design store (store/design-store.ts) for client-side design system state management
  • New API routes: /api/design-systems, /api/projects, /api/templates for design feature backend
  • New hooks: use-design-systems, use-projects, use-templates (SWR-based data fetching)
  • types/design.ts — DesignProject type (renamed from Project to avoid collision with existing type)
  • components/design/ directory — scoped UI primitives (badge, button, input) to avoid conflicts with shadcn/ui
  • Supabase migration 20260418_xeref_design.sql — adds design_projects, organizations, org_members tables with RLS
Fixed
  • Database migration ordering — split into 3 passes (tables → policies → triggers) to fix RLS policy referencing org_members before the table existed

v1.9

April 18, 2026
Improved
  • Sidebar keyboard accessibility — chat rows and pinned chat rows are now fully keyboard-navigable (role="button", tabIndex, onKeyDown, focusRing)
  • Sidebar action buttons — Rename/Delete now appear on focus-within, not just hover; keyboard users can reach them without a mouse
  • Sidebar tab strip — switched to grid layout to prevent active-tab label from causing layout shifts
  • Mobile hamburger — removed inline style conflict with md:hidden; visibility now handled entirely by Tailwind
  • Sidebar custom event coupling replaced with typed callback props (onShowChatList, onOpenTaskDialog) with window event fallback
  • Hardcoded workspace names removed from Code tab until wired to real data
  • Collapsed sidebar MessageSquare icon now reflects active chat state
  • Customize nav item no longer collapses the sidebar on click
  • Upgrade to Pro chip shown in expanded sidebar for free-plan users
  • maxHeight inline style on Recents scroll area replaced with Tailwind class
  • Recents chevron rotation standardized to match Projects (rotate-90 when open)
  • Empty Pinned section copy updated to "Right-click a chat to pin it"
  • suppressHydrationWarning removed from user menu trigger
Fixed
  • Confirm/Cancel rename buttons — added aria-label and p-1 touch target padding (WCAG 2.5.5)
  • Rename inputs — added aria-label on all inline edit inputs
  • Workflows: Run/Edit/log-edit buttons now keyboard-accessible (focus:opacity-100, focus-visible ring)
  • Workflows: All form labels associated with inputs via htmlFor/id pairs
  • Workflows: Run Now modal shows inline role="alert" error when message is empty; textarea marked required/aria-required
  • Workflows: Delete is now two-stage — first click prompts confirmation, second click fires
  • Workflows: Cron field validates 5-field format on submit and shows role="alert" error
  • Workflows: MoreHorizontal log-edit icon replaced with Pencil
  • Workflows: Toggle button — added type="button" and focus-visible ring
  • Workflows: Create button shows "Creating…" while pending
  • Workflows: Logs toggle has aria-expanded and aria-controls
  • Workflows: Redundant !disabled guard removed from DropdownMenuItem onClick handlers
  • Workflows: Timestamps use consistent en-GB locale instead of browser-default
  • Workflows: Execution logs panel has CSS mask-image fade to indicate overflow
  • Workflows: Loading states wrapped in role="status" aria-live="polite"
  • Workflows: Empty state has an inline Create Workflow button
  • Workflows: Run Now modal DialogContent has aria-label
  • Workflows: parseCronToHuman called once per cron section instead of twice
  • Workflows: Header row wraps on narrow viewports (flex-wrap gap-y-3)

v1.8

April 17, 2026
New
  • Notes view — persistent note-taking integrated with the dashboard sidebar
  • Stats view — real-time usage analytics and performance metrics
  • Workflows view — cron job scheduling and webhook-based automation
  • Customize Views — personalize dashboard layout with draggable view cards
  • Comprehensive dashboard chat UI — improved message rendering, typing indicators, and input handling
Improved
  • Task management UI — enhanced with better status indicators and inline actions
  • Dashboard shell performance — optimized component rendering and state management
Architecture
  • Dashboard UI components refactored for maintainability and reusability
  • Chat interface standardized with proper error handling and edge cases

v1.7

April 16, 2026
Improved
  • New Conversation view layout — empty chat state now uses `items-center justify-center` on the outer container to vertically and horizontally center the entire block (icon + heading + input) as a single unit with `max-w-2xl` constraint, instead of expanding the content area with `flex-1` and pushing the input to the bottom

v1.6

April 15, 2026
New
  • Plan-aware chat routing — Basic users get the free Xeref model, Pro unlocks Haiku 4.5 and Sonnet 4.6, Ultra keeps Best (Auto), Opus 4.6, and Opus Plan Mode
  • Xeref model — new default model for Basic plan, powered by OpenRouter's free tier (openrouter/free)
  • Per-plan API key isolation — each plan tier uses a dedicated OpenRouter key for cost control and spend visibility
  • OpenRouter attribution headers — every request now sends HTTP-Referer and X-Title for accurate usage tracking on openrouter.ai
Improved
  • Haiku 4.5 moved to Pro plan — Claude models now start at Pro tier
  • Model selector labels updated to reflect new plan tiers (BASIC / PRO / ULTRA)
  • Chat errors now return structured JSON responses instead of plain text strings
Architecture
  • Centralized OpenRouter config in lib/ai/openrouter-config.ts — plan-to-key mapping, model allowlists, and provider factory in one server-only module
  • Server-side plan enforcement on every chat request — client-supplied model IDs are validated against the authenticated user's plan before any upstream call
  • Unit tests added (vitest) — 24 tests covering plan gating, model resolution, and routing logic
  • AgentPanel.tsx legacy API call replaced — no longer calls OpenRouter directly from the browser; all requests route through /api/chat
Fixed
  • Removed NEXT_PUBLIC_OPENROUTER_API_KEY exposure in client-side components
  • Silent stream failures now return visible 502 errors instead of empty assistant responses

v1.5

April 12, 2026
New
  • System agents in chat — XerefClaw and Xeref Agents are now selectable pre-built agents in the chat input dropdown, above your custom project agents
  • Natural language CRUD via chat — tell the AI to "create a task", "mark X as done", "rename project", "remember X", or "what do you remember" and it executes the action directly
  • Memory system — new memories table; chat messages saying "remember" or "save this" are saved to long-term memory (with enable/disable toggle)
  • Workflows view upgraded — "Save Memories from Chat" workflow shows with a live toggle switch to enable or disable memory saving
  • Tasks view fully implemented — real CRUD with status cycling, priority badges, status filter tabs, and inline delete
  • User onboarding modal — new users see a 4-step setup flow on first login (name, role, goal, preferred model)
  • Sidebar CRUD — hover over any project or chat to reveal inline rename (pencil) and delete (trash) actions
Improved
  • Chat now defaults to XerefClaw system agent — no more empty agent selector on first open
  • Agent selector shows "System Agents" and "My Agents" sections with descriptions
  • Chat auto-creates a session on first message without requiring "New Chat" button first
  • Tool results rendered as styled cards in chat (task created, memory saved, task list, etc.)
Architecture
  • AI SDK v6 tool calling with inputSchema — 6 tools wired to server actions (create_task, list_tasks, update_task, rename_project, save_memory, recall_memories)
  • New Supabase tables: tasks, memories, workflows + onboarding columns on profiles
  • System agents defined in lib/system-agents.ts with hardcoded system prompts
  • AgentSelection union type replaces Project | null throughout chat components

v1.4

April 1, 2026
New
  • Home page chat/tasks toggle — Chat and Tasks are now accessible directly from Home via a pill toggle, replacing the "Build a new agent" card
  • Xeref Agents — new AI Agents team view listing all available agents grouped by team, with tool stack details and create/edit support
  • Stats page now shows live data — Agents Created, Prompts Generated, and Chat Sessions reflect real account activity
Improved
  • Tasks empty state is contextual — shows your configured agent count and explains when tasks will appear
  • Workflows description references your actual agent count and button now shows a "Coming Soon" badge

v1.3

March 31, 2026
Fixed
  • Chat responses now render correctly — migrated to AI SDK v6 parts-based message format (UIMessage.parts)
  • Dynamic model routing (opus-plan, best) now correctly reads user message content from AI SDK v6 format
  • Assistant messages properly persisted to database after streaming completes
  • Chat history loaded from database now renders correctly with v6 UIMessage parts format
Architecture
  • Upgraded to AI SDK v6 (ai@6, @ai-sdk/react@3) — replaced legacy useChat api/body options with DefaultChatTransport
  • Server route now uses toUIMessageStreamResponse() replacing deprecated toDataStreamResponse()
  • Per-request body (model + projectId) passed via sendMessage options for accurate project context per message

v1.2

March 31, 2026
New
  • Dynamic Model Routing — auto-switches active LLM natively in the web chat input
  • Opus Plan Mode (Ultra exclusive) — dynamically uses Opus 4.6 for planning and Sonnet 4.6 otherwise
  • /model opusplan text command to instantly lock into architectural deep-reasoning setups
Architecture
  • Configured default model globally to Haiku 4.5 for optimized low-latency chats
  • Intelligent AI Goal Decomposition backend router evaluates semantics to pick the best model tier automatically
  • Deployed subagent definitions securely encapsulating Opus 4.6 architecture constraints
Fixed
  • Resolved DropdownMenu radix ID hydration mismatch on sidebar user avatar menu

v1.1

March 30, 2026
New
  • Creem payment integration — subscribe to Pro or Ultra directly from the pricing page
  • Checkout success page with subscription confirmation
  • Webhook handler for real-time subscription status updates
  • Learn More button linking to Skool community
Fixed
  • Pricing page no longer redirects authenticated users back to the dashboard
  • StartBuildingButton auth redirect only triggers when signing in through the dialog

v1.0 Beta

March 2026
New
  • 48+ agent features organized by the CLAWS methodology (Connect, Listen, Archive, Wire, Sense, Agent Architecture)
  • Visual feature builder — browse, search, and filter capabilities
  • One-click prompt generation for Antigravity IDE
  • Magic link + Google OAuth sign-in
  • Named project save and restore (signed-in users)
  • Dark-only design system with OKLch color variables
  • Responsive layout with Framer Motion feature card animations
Architecture
  • Next.js 16 App Router with React 19 and Babel React Compiler
  • Supabase backend — Postgres + RLS for projects and usage events
  • Tailwind v4 with `@import "tailwindcss"` syntax
  • shadcn/ui components (new-york style, neutral base)
  • Vercel deployment with Edge-compatible proxy session refresh

AI Automations by Bugra Karsli

Learn More