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)
Updated about 1 month ago
Did this page help you?
