May 2026

Updates shipped to Sophie in May 2026.

May 2026

New capabilities, fixes, and improvements shipped to Sophie in May 2026.

Added

  • Wire identify() + LDObservabilityProvider + billing useFlag (May 17)
  • Observability + flags + APM Mission Control pages (Phase 5) (May 17)
  • Observability + QA admin routes (Phase 4) (May 17)
  • Move client seed data to user level in Mission Control (May 15)
  • Activate backbone orchestration — real tools, updated prompts, CM routing (May 15)
  • Unified MessageAttachment timeline persisted to every message (May 15)
  • Vendor-agnostic observability abstraction with Arize/LangSmith enrichment (May 14)
  • Thread tenant context into MCP and web-search tool traces (May 14)
  • Parent chat-turn span wraps agentic loop with wrapWithTurnTrace (May 14)
  • Trace Path B — LangSmith callbacks in AnthropicAdapter.stream() (May 14)
  • Python crew engine tracing via @traceable (May 14)
  • Tool layer tracing — makeTraceable helper, MCP and web-search wrapped (May 14)
  • Metadata context helpers and LangChain LLM call tagging (May 14)
  • Use getClassificationModel/getAgentDefaultModel instead of hardcoded strings (May 14)
  • Upgrade email_draft to produce OutboundPayload card (May 14)
  • Implement real DB operations for CM agent tools (May 14)
  • Show background delivery badge on async assistant messages (May 14)
  • Wire useLiveConversation + WorkingIndicator into ChatLayout (May 14)
  • Add WorkingIndicator component for streaming + background job state (May 14)
  • Add useLiveConversation for persistent SSE background job delivery (May 14)
  • Add BackgroundJob tracking + addBackgroundMessage to chat store (May 14)
  • Start Postgres-backed background worker unconditionally on boot (May 14)
  • Add GET /v1/conversations/:id/live persistent SSE endpoint with Postgres LISTEN (May 14)
  • Rewrite background worker — drop NATS, Postgres polling + pg_notify delivery (May 14)
  • Add queue_background_task builtin tool (May 14)
  • Add BackgroundJobService with enqueue/dequeue SKIP LOCKED + pg_notify (May 14)
  • Inject logged-in advisor profile into every LLM call (May 14)
  • Add ClientContextPicker to thread input and wire clientId through full stack (May 14)
  • Projects v2 — engagement workspaces (May 13)
  • Default all messages to Inference Agent orchestration path (May 13)
  • Wire onToolEvent through routeInferenceAgent + persist assistant message (May 13)
  • Rewrite executeStream with routing graph + real-time event forwarding (May 13)
  • Export inferenceRoutingGraph (routing-only) + aggregateResultNode (May 13)
  • Add ProjectHomePage component (May 13)
  • Add ProjectsShell layout and ProjectsIndexPage (May 13)
  • Add ProjectActivityFeed component (May 13)
  • Add ProjectsSidebar component (May 13)
  • Add ProjectConversationList component (May 13)
  • Add Projects entry to left nav (May 13)
  • Add conversationBase prop to AskBlock (May 13)
  • Add useProjectActivity hook (May 13)
  • Extend afterCallback to bootstrap new social-login users (May 13)
  • Add POST /auth/social-bootstrap for new social-login users (May 13)
  • Add setUserNeedsOnboarding to Auth0 management client (May 13)
  • Remove WorkOS SSO configuration card from identity page (May 13)
  • Remove SCIM methods from GroupsService (May 13)
  • Remove WorkOS org-creation from tenant provisioning (May 13)
  • Unmount SSO and SCIM routes from app.ts (May 13)
  • Remove WorkOS package + service/route files (May 13)
  • Inline accordion for Clients and Knowledge, keep Workspace drill-down (May 13)
  • Add dev-test QA harness and sample payloads (A8) (May 13)
  • Wire OutboundRouter into Turn.tsx (A7) (May 13)
  • OutboundAttachment type, store state, SSE handler, connectors hook (May 13)
  • Register draft_* tools; inject capability block; emit outbound SSE (May 13)
  • OutboundRouter dispatcher with Zod validation + fallback + barrel (May 12)
  • Full backend + frontend for acquire-from-chat screens (May 12)
  • Outbound.css styles + globals import + fix o-btn.accent hex (May 12)
  • Capability block + 6 draft_* micro-agent tools (May 12)
  • Zod schemas for OutboundPayload (API side) (May 12)
  • Shared utilities and icon set (May 12)
  • Zod schema + sample payloads for OutboundPayload (May 12)
  • Add dryrun + commit + retire endpoints for acquire-from-chat (May 12)
  • Acquire-from-chat — Sophie's in-chat file acquisition flow (May 12)
  • Upload menu redesign — drop zone, toggle switches, grouped sections (May 12)
  • Add /admin/domain-join-requests cross-tenant list + approve/reject endpoints (May 10)
  • Add explicit TOS acceptance step to accept-invite flow (May 10)
  • Require tosAccepted=true in /accept-invite endpoint (May 10)
  • Backfill script for tenants.domain → tenant_domains; stop writing tenants.domain in provisioning (May 10)
  • Add includeSubdomains checkbox to domain claiming form (May 10)
  • Notify admins via in-app review_trigger alert on domain join request creation (May 10)
  • Add featureOverrides (kbSharing, memoryIsolation) to workspace PATCH + admin UI (May 10)
  • Enforce workspace memory isolation via featureOverrides.memoryIsolation (May 10)
  • Enforce workspace-level KB sharing via featureOverrides.kbSharing (May 10)
  • Mount workspace context middleware on /v1/knowledge and /v1/memories (May 10)
  • Add getWorkspaceFeatures helper for featureOverrides lookup (May 10)
  • Add performancePeriodEndsAt, emailType, workspace fields to /auth/me + CurrentUserProfile (May 10)
  • Add available-plans endpoint filtered by email type + performance period banner (May 10)
  • Add domain claiming + SCIM group mapping to identity page (May 10)
  • Add domain-join-pending page for queued join requests (May 10)
  • Add accept-invite page + /auth/accept-invite API endpoint (May 10)
  • Add Workspaces/Groups/Teams entries to workspace sub-menu (May 10)
  • Add Workspaces, Groups, Teams admin pages (May 10)
  • Update WorkspaceMenu to show live workspace list with switch (May 10)
  • Add workspace store + cookie-based workspace switch route (May 10)
  • Add workspaceScoped option to requirePermission middleware (May 10)
  • Update defineAbilityFor with workspace/group/team/domain rules (May 10)
  • Add Workspace/Group/Team/Domain ResourceSubject + 3 permission keys (May 10)
  • Handle group events for SCIM-driven group membership (May 10)
  • Add TeamsService + /v1/workspaces/:wsId/teams router (May 10)
  • Add GroupsService + /v1/groups router (May 10)
  • Add domain claiming + join request management endpoints (May 10)
  • Workspace router + context middleware (Task 5.2) (May 10)
  • Add WorkspaceService with CRUD and membership; wire into domain join approval (May 10)
  • Enforce seat limit on invite creation (May 10)
  • Handle domain join request 202 response in route + web (May 10)
  • Rewrite domain-join block to use tenant_domains + JoinRequestCreatedError (May 10)
  • Add domain DNS TXT polling + performance period expiry workers (May 10)
  • Add DomainJoinRequestService (May 10)
  • Add DomainClaimingService with DNS TXT verification (May 10)
  • Add groups, teams tables to per-tenant schema (May 10)
  • Add workspaces + workspace_memberships to per-tenant schema (May 10)
  • Add tenant_domains and domain_join_requests schema (May 10)
  • Show full nav list in panel on home/chat; expand section on click (May 9)
  • Canonical two-column left nav with company tile and workspace menu (May 9)
  • Full UX redesign of Personality Studio (May 7)
  • Redesign Inference Agent and Agent Lab pages (May 7)
  • Full UX redesign of Memory Configuration + DB provisioning fix (May 7)
  • Auth0 Custom Page Template — branded login + 8 screens (May 7)
  • Sophie Personality System — per-user per-tenant personality, chat-driven, MC management (May 7)
  • Inference Agent Lab — versioning, benchmarking, shadow mode, AI Studio (May 7)
  • Feedback Visibility — local storage, OTel spans, MC dashboard (May 7)
  • Sophie Personality management page — roster, user drawer, archetype manager, audit log (May 7)
  • Inference Agent Lab — AI Studio split panel UI + sidebar nav (May 7)
  • Inference Agent Lab routes — versions, benchmarks, shadow comparisons (May 7)
  • Personality management routes — roster, history, archetype CRUD, audit log (May 7)
  • Version tagging + shadow execution in inference graph + OTel span attributes (May 7)
  • InferenceAgentVersionService — lifecycle management and shadow comparison (May 7)
  • PersonalityService — trait CRUD, system_prompt_block computation, history logging (May 7)
  • Memory Config page — per-tenant memory policy management (May 7)
  • BenchmarkService with composite scoring (accuracy + calibration + latency) (May 7)
  • PersonalityAgentService — Haiku directive detection with false-negative bias (May 7)
  • Memory config CRUD endpoint for per-tenant policy management (May 7)
  • Inject memory context into chat system prompt, extract facts post-response (May 7)
  • Feedback dashboard — trend chart, filtered table, chunk breakdown (May 7)
  • Add MemoryContextService — load and extract chat memories (May 7)
  • Schema for Sophie Personality System (preferences, history, custom archetypes) (May 7)
  • Feedback stats, list, and worst-performers endpoints (May 7)
  • Schema for Inference Agent Lab (versions, benchmarks, benchmark_runs, shadow_comparisons) (May 7)
  • Feedback now persists locally + emits OTel span event (May 7)
  • Inference Agent dashboard + LangFlow embedded builder in Mission Control (May 7)
  • New topologies, templates, guide page, and data fix (May 7)
  • Server-side pagination, search, and type filter (May 7)
  • Live platform counts from DB — replace hardcoded nav badges (May 7)
  • Platform catalog page, hooks, sidebar nav, backbone agents in tenant drawer (May 7)
  • Add POST /admin/tenants/platform/seed-catalog endpoint (May 7)
  • Catalog router + show catalog agents in GET /agents (May 7)
  • Agent Platform Catalog — 233 agents, 42 tools, chunk UI, MC seeding (May 7)
  • Phase 3 — Chat Projects (May 6)
  • Phase 2 — KB Triage from Chat (May 6)
  • Phase 1 — Chat Attachment Menu + File Upload (May 6)
  • Phase 0 — MCP Connector Catalog (May 6)
  • Full visual reskin of workspace/billing tabs (May 5)
  • Redesign billing UI to match workspace app style (May 5)
  • Add admin-api billing routes for Mission Control (May 4)
  • Add Billing section to Mission Control admin sidebar (May 4)
  • 7-step BillingSetupWizard onboarding component (May 4)
  • Notification service with 22 billing notification templates (May 4)
  • Dunning service with automated retry and suspension (May 4)
  • Add Billing section to admin sidebar nav (May 4)
  • Admin billing firms list + FirmDetailDrawer (6 tabs) (May 4)
  • MC Dunning Queue admin page (May 4)
  • MC Billing Dashboard admin page (May 4)
  • Payment Methods page (May 4)
  • Add-On Packages page (May 4)
  • Invoice History page (May 4)
  • Seat Management page (May 4)
  • Usage Dashboard page (May 4)
  • Plan Management page (May 4)
  • Billing Hub page + BillingSubNav component (May 4)
  • Add admin-billing router (13 endpoints) + fix RBAC for financial_admin (May 4)
  • Add invoice and payment method endpoints (May 4)
  • Add add-on package endpoints (available, purchased, purchase, detail) (May 4)
  • Add usage endpoints (GET /usage, /usage/history, /usage/check) (May 4)
  • Add billing-usage.service with usage ledger queries and limit enforcement (May 4)
  • Add Lago webhook handler (May 4)
  • Add Stripe webhook handler and mount billing webhooks router (May 4)
  • Register billingRouter in app.ts (May 4)
  • Requests page with approve/reject flow + Operations group in sidebar (May 4)
  • Add seat management endpoints to billing router (May 4)
  • Add billing router with 6 subscription endpoints (May 4)
  • Profile page rewrite — role hero, editable fields, client list, request modal (May 4)
  • Notification bell in Topbar + NotificationDrawer with 30s polling (May 4)
  • UseMeProfile, useNotifications, useAccessRequests hooks (May 4)
  • Register me, access-requests, notifications routes (May 4)
  • Add updateBillingCycle method to BillingService (May 4)
  • Add BillingService with subscription and seat orchestration (May 4)
  • Notifications routes — list, unread-count, mark-read, read-all (May 4)
  • Add Subscription and Invoice to CASL ResourceSubject, grant read to admin role (May 4)
  • Access-requests routes — list, approve, reject with CASL check (May 4)
  • Me routes — profile upsert, editable fields, access request submission (May 4)
  • Slack Block Kit webhook service with no-op fallback (May 4)
  • Extract adminRole from JWT claim into AppVariables (May 4)
  • Add AccessRequest subject + approve action to CASL platform abilities (May 4)
  • Dynamic env chip driven by NEXT_PUBLIC_APP_ENV + NEXT_PUBLIC_APP_REGION (May 4)
  • Real metrics, greeting, user menu + profile page in correct MC app (May 4)
  • Admin profile page — identity, security, team fields (May 4)
  • Admin dashboard real metrics + TopBar greeting + user menu (May 4)
  • Admin dashboard metrics and top-tenants endpoints (May 4)
  • Add full favicon set — apple-touch, android, ms-tile, and standard sizes (May 4)
  • Live computed metrics + workspace settings to configure firm-wide tiles (May 3)
  • Fix scroll clipping, add pagination with 25/30/50 per page, column sort (May 3)
  • Remove static dots, auto-scale axes, fix label clipping, add zoom/pan (May 3)
  • Add book-summary.worker and compute-book-summary.ts ECS entry point (May 1)
  • Add GET /v1/book/summary — advisor-scoped book stats with stale-while-compute (May 1)
  • Add book-summary.service + expand createTenantSchema with isCurrent and cohort columns (May 1)
  • Wire feed to real conversations and audit_logs; fallback to hardcoded when empty (May 1)
  • GET /v1/clients/:id/conversations + /audit; add chatCount/lastChatAt to client detail (May 1)
  • Add demo conversations and audit events for 3 testuser4 clients (May 1)
  • Remove MOCK_BOOK from BookPage and RosterPage (May 1)
  • Enrich GET /v1/clients/:id with 19 parallel table joins (May 1)
  • Rich 26-table demo seed for testuser4 — 3 demo clients (May 1)
  • Add Mission Control review queue routes — list, apply, reject, bulk-apply (May 4)
  • Add financial extraction worker — auto-apply at confidence>=0.85+structured, pending_review otherwise (May 4)
  • Add LangChain agent fallback with read_schema + propose_update tools (max 5 turns) (May 4)
  • Add financial extraction service — typed Zod extraction + agent fallback routing (May 4)
  • Add Zod extraction schemas for 5 financial document types + detectDocumentType (May 4)
  • Add scdUpsert() helper — SHA-256 idempotency wrapping HistoricalRecordService (May 4)
  • Wire AgentExecutionService routing, SSE tool events, and source citations (May 4)
  • Move Branding and Memory pages to workspace nav with design system redesign (May 4)
  • Replace Sophie dot icon with Prospera lockup in brandbar (May 4)
  • POST /admin/tenants/:id/seed-demo — re-seed 20 demo clients for any tenant (May 4)
  • ModelSelector component grouped by provider with tier badges (May 4)
  • GET /api/v1/llm-models route grouped by provider with tier (May 4)
  • CreateLangChainLLM factory with reasoning model constraints (May 4)
  • Add resolveProvider, isReasoningModel, getModelTier helpers (May 4)
  • Wire acquisitions page to real API — useAcquisitions hooks (May 4)
  • Add acquisition upload, SSE stream, shelve, reject, patch routes (May 4)
  • Triage worker — classifyDocument + matchClient on acquisition.item.uploaded (May 4)
  • Add matchClient() scoring service with name/email/phone signals (May 4)
  • Add LocalStorageAdapter + storage factory for STORAGE_ADAPTER=local (May 4)
  • Add acquisition_batches table + batch/client columns on items (May 4)
  • Show DEFAULT badge on policy-seeded KBs in knowledge page (May 4)
  • Apply DEFAULT KB policy at tenant provisioning and advisor domain-join (May 4)
  • DefaultKbPolicyService — seed 3 KBs at provisioning, grant advisors on domain-join (May 4)
  • Wire /workspace/knowledge page to real APIs (May 4)
  • Refactor knowledge components to accept real data props (May 4)
  • AccessGrantDrawer for granting and revoking KB access (May 4)
  • KbEditorDrawer for create/edit/delete knowledge base scopes (May 4)
  • UseKnowledgeBases hooks for KB, stats, access matrix, sensitive classes, connectors (May 4)
  • Sensitive_class_configs table, service, and GET/PATCH routes (May 4)
  • GET /knowledge/stats and GET /knowledge/access-matrix (May 4)
  • PATCH + DELETE /knowledge/bases/:id with soft-delete (May 4)
  • Redesign enrichment loading overlay with premium UX (May 3)
  • Add Tooltip primitive; wire rich hover tooltips onto profile Filofax tabs (May 3)
  • Redesign website search as equal alternative to name search (May 3)
  • Distribute profile Filofax tabs evenly using space-between (May 3)
  • Remove role badge + domain footer from profile tab strip (May 3)
  • Add optional website input to firm lookup search (May 3)
  • Add topbar + breadcrumbs to profile page, sync crumb to active tab (May 3)
  • Auth0 sync firstName/lastName, greeting + nav prefer firstName over split-name fallback (May 3)
  • Expand IdentityPane — firstName/lastName/contact/department fields + avatar upload (May 3)
  • Expand CurrentUserProfile + PatchMeFields with firstName/lastName/personalEmail/phone/department, add uploadAvatar() (May 3)
  • Expand PATCH /auth/me, add avatar upload+serve, profile history, name-sync guard (May 3)
  • UserProfileService with name-sync guard, display-name derivation, and audit history (May 3)
  • Install ZT Nature Thin/Medium/Black weights from second delivery (May 3)
  • Add Prospera mark, logotype, and lockup components; migrate nav and auth pages (May 3)
  • Real roles/policies/models — DB, API, and UI wiring (May 3)
  • Firm profile foundation — DB, API, lookup, and workspace UI (May 3)
  • Workspace users management + environment setup (May 3)
  • Rename All Clients to Book of Business, add Roster nav item, replace tab bar with breadcrumbs (May 3)
  • Roster subtitle, chart overhaul, pagination, live metrics (May 3)
  • Wire BookPage to useBookStats for live advisor/segments/cohorts (May 2)
  • Wire ChatsTab Feed view to useClientConversations (May 2)
  • Wire AuditTab to useClientAudit with loading/error/empty states (May 2)
  • Derive RosterPage filter chip counts from live client data (May 2)
  • Add BookStatsDTO/ClientListItemDTO types and useBookStats hook (May 2)
  • Add GET /book-stats and enrich GET /clients list with 12 fields (May 2)
  • Pixel-perfect Phase 6 — firm lookup flow (A1–A4) (May 2)
  • Pixel-perfect Phase 5 — audit log screen (May 2)
  • Pixel-perfect Phase 4 — knowledge access screen (May 2)
  • Phase 3 — Roles pixel-perfect (PRD chip colors advisor=warm/viewer=ground/custom, 7 policies with copy, section labels) (May 2)
  • Phase 1 — Overview pixel-perfect (PRD kicker/copy, stat tile font, tag colors, posture values, quick links, checklist detail text) (May 2)
  • Promote new library design to /knowledge, retire /library routes (May 1)
  • M12 remaining shelves — Phase 2 empty states + xlsx stub canvas (May 1)
  • M11 IMessageCanvas + PhoneFrame — iOS iMessage thread viewer (May 1)
  • M10 EmailCanvas — Gmail-style collapsible email thread (May 1)
  • M9 WhatsAppCanvas — chat thread viewer with bubble UI (May 1)
  • M8 TranscriptCanvas — Granola-style meeting transcript viewer (May 1)
  • M7 smith-family shelf + Communications binder + CommsCanvas stub (May 1)
  • M5+M6 document folio page + PDF/DOCX/MD/HTML canvases (May 1)
  • M4 — /library/[shelf]/[binder] open binder with dividers + folio rows (May 1)
  • M3 — /library/[shelf] shelf rack with 6 binders + add placeholder (May 1)
  • Migrate /clients to standard DashboardTopbar + BreadcrumbBar pattern (May 1)
  • Migrate /chat to standard DashboardTopbar + BreadcrumbBar (May 1)
  • Replace AppRail with LeftNavBar (hybrid icon-rail + grouped panel) (May 1)
  • Wire asOf param into insight endpoint and bump cache key to v2 (May 1)
  • Backfill script to populate entity_id and data_hash for existing tenant data (May 1)
  • HistoricalRecordService with SCD Type 2 upsert and point-in-time queries (May 1)
  • Deterministic SHA-256 data hash utility (May 1)
  • Add SCD Type 2 tracking types (May 1)
  • Add full topbar + move workspace sub-nav into AppRail (May 1)
  • Wire BreadcrumbContext into all workspace pages (May 1)
  • Wire BreadcrumbProvider + BreadcrumbBar into WorkspaceShell (May 1)
  • Wire BreadcrumbContext across all dashboard pages (STEPS 3-8) (May 1)

Fixed

  • Forward screen_hint to Auth0 so /signup opens signup screen (May 28)
  • Preserve Auth0 query params when switching screens (May 28)
  • Normalize legacy toolCalls shape at the API boundary (May 21)
  • Env-only API key in langchain-model-resolver (named-agent path) (May 21)
  • AnthropicAdapter must extract text from array-of-blocks content (May 20)
  • Seed real input schemas for Tier 0 builtin tools (May 20)
  • Wire chat route through OrchestrationRouter (May 20)
  • Orchestration router now actually applies default-agent config (May 20)
  • Drop .js extension from local TS imports — Next webpack rejects them (May 20)
  • Env-only API keys + typed error envelope across api/web (May 19)
  • Schema explorer empty graph — auto-fit, defensive dagre register, toolbar (May 18)
  • Pass enrichedContext into backbone advisorContext (May 15)
  • Inject selected-client context into CRM Backbone — stop asking for client ID (May 15)
  • Correct AP and EH chunk routing to proper backbone agents (May 15)
  • Use AUTH0_BASE_URL for redirect URLs instead of req.url (May 15)
  • Route CM intent to CRM Backbone for agentic client data lookups (May 15)
  • Align PROJECT_COLORS enum with palette and fix api-client error handling (May 15)
  • Strip bare JSON echoes from inline prose + empty fences (May 14)
  • Hide echoed JSON code block at render layer (May 14)
  • Hide echoed JSON, render card live, persist across reload (May 14)
  • Remove unused sampled/tenant fields from WebSearchServiceOptions (May 14)
  • Gate inference-agent tags on langsmithMeta, clarify OTel comment (May 14)
  • Consistent sampling and full metadata in tool traces (May 14)
  • Single sampling decision, document never[] constraint, improve tests (May 14)
  • Render outbound card end-to-end in chat UI (May 14)
  • Attach metadata callbacks in createLangChainLLM; apply shouldSampleRun gate; add service to inference metadata (May 14)
  • Move startup check to FastAPI lifespan; strengthen call_agent tests (May 14)
  • Gate agent-execution tags on langsmithMeta, matching metadata guard (May 14)
  • Restore 4-arg traceable closure in MCP callTool; document makeTraceable any[] rationale (May 14)
  • CreateLangSmithCallbacks uses ctx metadata, restore full test coverage (May 14)
  • Remove unsupported extraParams mutation, add missing isLangSmithEnabled test (May 14)
  • Replace hardcoded claude-3-5-haiku-20241022 with provider-resolver functions (May 14)
  • Anthropic provider parity — baseUrl, anthropicApiUrl, healthCheck (May 14)
  • Anthropic provider parity — baseUrl and anthropicApiUrl support (May 14)
  • Route email drafting to Communication Backbone + emit outbound card (May 14)
  • Normalize flat-format nodes + use llm_models table (May 14)
  • Fix tool node config path, input mapping, and crm_update dual-pattern support (May 14)
  • Fix border token, clear backgroundJobs on reset, guard reader cleanup (May 14)
  • Guard live SSE cleanup in try/finally + surface background worker startup errors (May 14)
  • Fix dequeue race, input contract, redundant fetch, clearInterval on stop (May 14)
  • Fix dequeue camelCase cast, atomic markFailed, increment messageCount (May 14)
  • Address code review — break on error, fix input serialization, collect tool_result output (May 14)
  • Inject response guardrails into every LLM call (May 14)
  • Make lint pass — guard SSR-unsafe globals + exclude tests from type-check (May 14)
  • Resolve TS strict errors in billing + admin + chat services (May 13)
  • Include state.messages in dynamic prompt runnable (May 14)
  • Add ClientContextPicker to Composer (May 14)
  • Drop public.clients FK, query tenant-schema clients (May 14)
  • Backbone token estimation + named agent DB history fallback (May 14)
  • Attach non-passive wheel listener for constellation zoom (May 13)
  • Scope test client data to a specific user, not a tenant (May 13)
  • Use PROVISION_DATABASE_URL in seed-test-data service (May 13)
  • Fix GET /platform/users 500 — remove inaccessible columns (May 13)
  • Fix classification always falling back + fix camelCase mapping (May 13)
  • Capture token usage + fix null fields in routing decisions (May 13)
  • Mark execution failed on error + improve test coverage (May 13)
  • Remove .js extension from callback-logic import (May 13)
  • Handle nodes without position field (May 13)
  • Resolve agent playground 502 + zero token counts (May 13)
  • Persist and rehydrate acquisition outcome across page refresh (May 13)
  • Remove stray WorkOS references from schema, services, openapi, and tests (May 13)
  • Oneoff commit no longer shows Shelved card; remove duplicate /status handler (May 13)
  • Prevent message clear on nav, restore PDF state on refresh, auto-scroll to stream (May 13)
  • Fix message disappearance and acquire-from-chat rehydration bugs (May 13)
  • Move /status route before auth middleware to prevent 500 (May 13)
  • Upsert status regression, add RBAC guard, 404 on missing draft (B4 review) (May 13)
  • Add connectors prop + connector-gated send to OutboundEmailDiff (May 12)
  • Reshape icons.tsx to Icon object + ChannelLogo sub-components (May 12)
  • Quality fixes — narrowed types, datetime validation, Attachment rename (May 12)
  • Correct route paths — /dryrun and /commit, not /acquisitions/dryrun (May 12)
  • Suppress legacy KBTriageBanner when acquire-from-chat flow is active (May 12)
  • Seed selectedModelId from meta + fix new-chat nav + design token cleanup (May 12)
  • User menu always opens + profile completion redirect (May 12)
  • Restore user profile avatar and add null-name fallback (May 12)
  • Auth0 login page — real Prospera logo + fix error display (May 12)
  • Resolve Auth0 login font 404s with absolute URLs + CORS headers (May 12)
  • Resolve /chat crash + agents 400 + marketplace null-length errors (May 12)
  • Quality fixes — RBAC middleware, transaction, parallel queries, status validation, static imports (May 10)
  • Correct nextCursor, aggregate total, and auth0Sub null guard in domain join request router (May 10)
  • Guard existing! in conflict path; log errors in fire-and-forget catches; improve JSDoc (May 10)
  • Add isArchived filter to PATCH update; tighten types; accessibility fix (May 10)
  • Freeze DEFAULTS to prevent mutation; strengthen undefined test (May 10)
  • Scim source filter, null-safe GroupDto/DomainJoinRequestDto types, mutation error handlers (May 10)
  • Add upstream error handling in proxy route, hoist INVITE_TOKEN_RE to module scope (May 10)
  • Suspense boundary, Next.js proxy route, token validation, atomic activation order (May 10)
  • Check data.error discriminant before res.ok for already_accepted (May 10)
  • Atomicity + tenant isolation + input validation fixes (May 10)
  • Add tenant ownership checks + input validation on domain endpoints (May 10)
  • Fix middleware scope, move remove-member to service, clean up debug code (May 10)
  • Fall back to URL params when {{config}} not injected (PKCE flows) (May 8)
  • Defensive mount guard — handle null #root and readyState (May 7)
  • Parse JSONB config field returned as string by postgres driver (May 7)
  • Move inlined script before to fix React #299 (May 7)
  • Add defer to inlined script tag (May 7)
  • Add Inference Agent + Agent Lab to AgentsSubNav horizontal pill nav (May 7)
  • Resolve all pre-existing test failures in api and web (May 7)
  • Remove unused useEffect import from feedback page (May 7)
  • Add | undefined to optional props for exactOptionalPropertyTypes (May 7)
  • Wire backbone agents to chat orchestration layer (May 7)
  • Internal service bypass uses super_admin role (May 7)
  • Correct seed-test-data path from admin/tenants to tenants (May 7)
  • Cascade-delete stub tenant on re-provision instead of deleting just the user (May 7)
  • Seed-demo and seed-catalog accept org_admin role (May 7)
  • Raise AccountMenu popup z-index from 5 → 200 to fix regression (May 7)
  • Secure LangFlow routes, fix type safety, add route tests (May 6)
  • Rename CREW_ENGINE_URL constant, ensure crew execution record updates on disconnect (May 5)
  • Fix double DB lookup in backbone routing, type backbone graph, fix token streaming (May 5)
  • Wire Inference Agent into chat path, add RLS, fix quality issues (May 5)
  • Use WorkspacePageHeader for Fraunces display font matching other workspace pages (May 5)
  • Add 32px/40px padding to billing layout to match other workspace pages (May 5)
  • Align firm lookup + workspace-firm route tests with actual implementations (May 5)
  • SSE adapter — forward tool error, single-use guard; model resolver opaque error messages (May 5)
  • Unwrap subscription from API response envelope in queryFn (May 4)
  • Fix API response shapes and add missing plan.limits to subscription response (May 4)
  • Align workspace billing API responses with frontend contract (May 4)
  • Add AdminShell wrapper to MC Billing Dashboard (May 4)
  • Invoice History spec compliance fixes (May 4)
  • Seat Management spec compliance fixes (May 4)
  • Usage Dashboard spec compliance fixes (May 4)
  • Plan Management spec compliance fixes (May 4)
  • Code quality improvements for Billing Hub page (May 4)
  • Billing Hub spec compliance fixes (May 4)
  • Code quality improvements for admin-billing and billing.service (May 4)
  • Spec compliance fixes for admin-billing router (May 4)
  • Atomic set-default, fix pagination NaN guard, tenant-scope soft delete, Stripe error handling (May 4)
  • Stable idempotency key, update usageLedger on addon purchase, shape detail response (May 4)
  • Correct quantity vs amountAdded semantics in purchased addons response (May 4)
  • Deduplicate VALID_METRICS, guard baselineLimit null, reject non-integer amount (May 4)
  • Distinguish missing/invalid metric errors in usage/check; add warning passthrough test (May 4)
  • Address code quality issues in billing-usage.service (May 4)
  • Use lago_id for subscription webhook lookups (May 4)
  • Fix webhook idempotency, error logging, and move business logic to service (May 4)
  • Fix DELETE seat guard, error codes, and UUID validation (May 4)
  • Requests page spec gaps — header copy, Approve/Reject buttons, note hover, pagination (May 4)
  • Fix DELETE seat error handling and move subscription lookup into try block (May 4)
  • Drawer click race, error feedback on submit, Space key a11y, EditableField sync (May 4)
  • Address quality issues in billing router and service (May 4)
  • Show toast after access request submit instead of inline modal success state (May 4)
  • Address code quality issues in BillingService (May 4)
  • Remove trailing ? from access-requests query URL (May 4)
  • Notifications PATCH 404 handling, safe ts() helper, test coverage (May 4)
  • Use db.transaction() for atomic approve flow (May 4)
  • Best-effort notification insert, guard JSON body parsing in me routes (May 4)
  • Extract ensurePlatformUser service, atomic approve transaction, input validation (May 4)
  • Use DB subquery for decided_by name in access-request PATCH response (May 4)
  • Me routes — safe notification inserts, UUID validation, test coverage (May 4)
  • Correct schema defaults, composite indexes, text types (May 4)
  • Add read grant and approve comment to AccessRequest CASL config (May 4)
  • Use Promise.allSettled in dashboard metrics — one query failure won't crash all tiles (May 4)
  • Add error to AcquisitionStatus union type (May 4)
  • Add tenantId to SearchQuery call and add error to AcquisitionStatus type (May 4)
  • Correct query key auth-me for cache invalidation on profile save (May 4)
  • Windowed pagination, move sortable th cursor to CSS (May 3)
  • Remove dead xHi from scale memo, fix pan transform order (May 3)
  • Address code quality review findings C1/I1/I2/I3/I4 (May 4)
  • Wire scdUpsert in worker auto-apply path, enforce bulk-apply max(100) (May 4)
  • Make tenantId required in OpenSearch search() — remove optional bypass (May 4)
  • Add tenantId to OpenSearch index schema and mandatory term filter on search (May 4)
  • Implement rag_retrieval tool — wraps SearchService with tenant/user context (May 4)
  • Strengthen KB tenant guard — tenantId filter in DB query + pass through to search service (May 4)
  • Enforce tenant isolation on KB search — validate KB ownership before querying (May 4)
  • Demo-data page — strip sidebar nav and breadcrumb for standalone sandbox exit flow (May 4)
  • Contain SandboxFrame within viewport height — prevent page overflow in FTUE/sandbox mode (May 4)
  • Tighten isReasoningModel regex, add type safety to llm-models route, document auth intent (May 4)
  • Handle both /api/proxy and /api path prefixes (May 4)
  • Repair new-user provisioning — FTUE, admin role, onboarding bypass (May 4)
  • MatchClient — use per-tenant clients schema with email+phone signals (May 4)
  • Strip /api/proxy prefix when forwarding to API (May 4)
  • Unique constraint on sensitive_class_configs; delete KB confirm from card (May 4)
  • WEBP magic byte dual-check + avatar route test coverage (May 3)
  • UserProfileService — explicit fieldsChanged comparison, catch history errors, add DB method tests (May 3)
  • Restore Filofax book-tab design lost in refactor (May 3)
  • Correct Profile menu href from /settings/profile to /profile (May 3)
  • Reconnect account menu, show full name, fix greeting, add firm logo upload (May 3)
  • Extend isAdminRole to include org_admin so workspace shell renders for owners (May 3)
  • GLEIF attributes extraction, OC token guard, CSA NRS error handling, add OrgBook BC (May 3)
  • Constellation age spread, book-metrics 403, and CASL update-Workspace (May 3)
  • Guard metricValues access with optional chaining (May 3)
  • Count totalClients/totalHouseholds from tenant schema in book-stats (May 2)
  • Use fmtMoney for AUM tile in BookPage (May 2)
  • Stable AuditEvent keys, fix time formatter, dead code removal (May 2)
  • Stable FeedItem keys from id; fix no-break-space in time formatter (May 2)
  • Add clientKeys.bookStats factory; document toClientSeed fallbacks (May 2)
  • Unify breadcrumb typography — sans-medium 15px all crumbs, bold 700 active only (May 1)
  • Restore acquisitions desk page + wire Drop Documents button (May 1)
  • Replace card-based shelf grid with canonical wooden-shelf design (May 1)
  • Wire left nav Knowledge section to /library routes + redirects from /knowledge (May 1)
  • Knowledge routes regressed by DashboardShell p-6 — move to (knowledge-shell) (May 1)
  • Call tenantProvisioningService.provision() on new tenant signup (May 1)

Improved

  • Hoist web-search traceable wrapper to class init (May 14)
  • Rewrite clients route to read from tenant schema (May 3)

Did this page help you?