Changelog
Shipped openly.
New features, model upgrades, integrations, and the occasional bug fix that mattered.
52 integrations in the catalog
Catalog jumped from 32 to 52 entries — Microsoft Teams, OneDrive, SharePoint, Excel, Monday, ClickUp, Apollo, Razorpay, Box, Calendly, Google Meet, Anthropic/OpenAI/ElevenLabs/Deepgram (BYOK), MCP servers, Composio, YouTube, Resend, Polymarket.
integrationsmilestonebyokmcpPublic Ask Niyra API — backend lives
New public endpoints at /api/public/ask-niyra and /api/public/search. Anonymous-allowed, per-IP rate-limited, page-context aware. Powers the marketing widget and opens an API surface for third parties.
apiask-niyrasearchpublicContent generation pipeline
New build-time tools — generate-content.mjs (Claude Sonnet draft generator with approved:false gate), build-search-index.mjs (incremental OpenAI embeddings into pgvector), lint-content.mjs (voice + frontmatter QA in CI).
pipelinecontentautomationembeddings40 docs MDX — coverage milestone
Docs library tripled from 10 to 40 hand-written MDX. 8 new per-integration setup guides (Gmail, Calendar, Slack, Notion, Linear, GitHub, Stripe, HubSpot, Salesforce, Zoom, Razorpay), operational guides (account-deletion, channel-scopes, data-retention), and BYOK walk-throughs for Anthropic + OpenAI.
docscontentmilestoneGA4 + IndexNow live
Google Analytics 4 wired via next/script (afterInteractive, no CWV impact). IndexNow key registered and the 62-URL corpus pushed to Bing, Yandex, DuckDuckGo.
analyticsseoindexnowga4POST /mcp — Niyra as MCP server, Phase B v1
Niyra is now reachable as an MCP server. niyra_ask + niyra_get_task tools live; JSON-RPC dispatch routes through the OAuth-authenticated token plane. Claude Desktop, ChatGPT, and any MCP-aware client can wire Niyra in.
mcpapiphase-binteropMDX-loader directory mapping fix
The marketing MDX loader was scanning singular directory names (feature/, doc/) while the actual content dirs were plural (features/, docs/) — every MDX-backed dynamic route silently 404ed in production. Added DIR_NAME map, mirrored in the embeddings indexer. All hand-written features + docs now render.
fixmdxseo404Niyra voice system — every message in her voice
Brand-wide voice catalog. NiyraError envelope on the backend (models.SendNiyraError), NiyraToast/NiyraMessage on the frontend with orb + label identity. ESLint rule blocks raw sonner toast calls.
voicebrandsystemNiyra as OAuth authorization server — Phase A
Dynamic Client Registration (RFC 7591), authorization-server metadata discovery (RFC 8414), JWKS publication for RS256 access tokens. Foundation for third-party MCP clients to authenticate against Niyra without manual credentialing.
oauthmcpauthphase-aTime saved this month — hero widget
New dashboard hero — month-to-date minutes computed server-side via per-tool attribution on usage_logs. Each tool credits a baseline (research 45 min, automation 15, email 10). Shareable as a 1200×630 OG-card PNG with prominent Niyra branding.
dashboardwidgetsharegrowthNiyra voice + Apex/Fable 5 tier
Every system message now speaks in Niyra's voice — errors, toasts, validation, empty states. New Apex tier on Claude Opus 4 / Fable 5 for BYOK-only alpha access.
voiceapexalphaFiles: click-to-preview modal + white card surface
Files dashboard got a fresh look. Click any file to preview inline — PDFs, images, text, code.
filesuiProactive OAuth token refresh
MCP server tokens refresh 60s before expiry, in the tool-call path. No more 'reconnect Slack' surprises.
mcpoauthreliabilityHTTP MCP servers with OAuth support
Add MCP servers over HTTP with OAuth flow. The red 'reconnect' banner now hides when OAuth is offered.
mcpintegrations