Releases: unstackedapps/opensuitemcp
Release list
v3.1.1
OpenSuiteMCP 3.1.1
Added
/docs/upgrades— tag-based self-host update runbook (pnpm skills:sync, migrate, rebuild)- Licensing clarity — free for your org’s internal self-host; paid delivery/support only via Unstacked Apps (self-host docs, README, NOTICE)
Fixed
pnpm devdefaults to webpack so Turbopack no longer fails on@ai-sdk/provider-utilsdynamic imports. Optional:pnpm dev:turbo
Upgrade notes
- Pull
v3.1.1(ormain) and usepnpm devas documented - After go-live, see Upgrades (also
/docs/upgradeswhen self-hosting)
See CHANGELOG.md for full notes.
v3.1.0
OpenSuiteMCP 3.1.0
Added
- NetSuite connect wizard — guided App Portal flow, shared Integration checklist, manage-accounts polish
- Public docs —
/docs,/docs/netsuite-integration,/docs/self-host(org-hosted architecture overview) - Oracle skills sync — pack no longer vendored; run
pnpm skills:sync(or rely on production entrypoint) to populate.data/oracle-skills - Shared model registry — canonical Speed / Reasoning models for Google, Anthropic, OpenAI
Fixed
- Anthropic Sonnet thinking uses adaptive + effort (Sonnet 5+ rejects
thinking.type.enabled) - Mobile dialog/sheet footer gaps and chat-history tooltip collisions
Upgrade notes
- After pull:
pnpm installthenpnpm skills:syncbefore relying on Oracle skills in the portal - Optional: schedule weekly
pnpm skills:sync(or cron) for new upstream skills - Set
AUTH_URLso/docs/netsuite-integrationshows your real OAuth redirect URI
See CHANGELOG.md for full notes.
v3.0.0 - App Portal, Skills, Prompts & NetSuite MCP
App Portal
One place for Chats, Skills, Prompts, AI Provider, NetSuite, Web Search, Timezone, and Account — Claude-style left rail with a consistent panel layout.
SuiteCloud Agent Skills
- Oracle SuiteCloud Agent Skills pack plus custom
SKILL.mdskills - Enable/disable per session; enabled skills inject into the system prompt for new messages
Companion Prompt Library
- Native browse of Companion SuiteApp templates (category / industry / role filters)
- Fill placeholders, then send the prompt into chat
NetSuite MCP
- Multi-account management with DCR probe and clearer Integration setup
- Connection status chip and improved connect / disconnect flow
BYOLLM & usage limits
- Providers: Google (Gemini), Anthropic (Claude), and OpenAI (GPT) with your own API keys
- Daily message caps via
MAX_MESSAGES_PER_DAY_REGULAR/MAX_MESSAGES_PER_DAY_GUEST - Optional Redis burst limit via
CHAT_BURST_LIMIT_PER_MINUTE(fail-open if Redis is unset)
Breaking changes
- Inception Labs removed — migrate to Google, Anthropic, or OpenAI
- Web search narrowed — Folio3 and Tim Dietrich tools removed; NetSuite Help Center search remains
- Run new migrations:
0007_netsuite_accounts_dcr,0008_user_skill_settings
Technical
package.jsonversion set to3.0.0- Skills and NetSuite account settings persisted in the database
v2.6.0 - Custom Instructions, Prompt Enhancements & Migration Fix
Custom Instructions (instructions.md)
Add your own instructions to shape how Ava responds.
- Settings → Custom Instructions — Import an
instructions.mdfile or paste content - Custom instructions are appended to the system prompt as "Additional User Instructions"
- Protected core directives — Tool completion, no fabrication, orchestration rules, and Ava identity cannot be overridden by user instructions
System prompt improvements
- Refined identity, response rules, search triage, and tool orchestration
- Intent-based search triage instead of fixed priority
- Step budget clarified: "Do not stop early unless the objective is satisfied"
- Search scaling: prefer 1–2 targeted searches; add more only when addressing clearly distinct sub-topics and staying within the step budget
- Explicit guidance for fiscal/quarter-based queries to derive period from the provided date
Tool orchestration updates
- Resolution model: Fully Resolved, Partially Resolved, Blocked
- MCP rules: max 3 consecutive calls before alternating with search
- Completion: stop only when objective is met, NetSuite operation completes, or the system ends the turn
- Protected directives prevent user instructions from overriding safety and orchestration rules
Bug fix: migrations (inceptionApiKey)
2.4.0 added inceptionApiKey to the schema and journal but the migration file was never committed. 2.5.0 did not fix this. Users on 2.4.0/2.5.0 could see "column already exists" or missing-column errors.
Migration 0006_illegal_sunfire now adds inceptionApiKey and customInstructions with IF NOT EXISTS for reliable fresh installs and upgrades.
Technical
- New
customInstructionscolumn in UserSettings PROTECTED_DIRECTIVESin prompts.ts enforce non-overridable core rules when custom instructions are present
v2.5.0 - Inception Labs Mercury 2 Enhancements
Inception Labs provider enhancements
This release improves the Inception Labs (Mercury 2) integration with a custom provider and streaming experience.
✨ What's new
- Custom Inception provider — Dedicated provider (
lib/ai/custom-providers/inception.ts) with reasoning summary extraction for Mercury 2 - Diffusion streaming — Live refinement display during reasoning mode so you can see output as it’s generated
- Extended model options — Reasoning effort, summary, and diffusing parameters forwarded to the Mercury 2 API
🧰 Technical
- Added
@ai-sdk/openai-compatibleas an explicit dependency for Inception Labs (Mercury 2) integration
v2.4.0 – Inception Labs Mercury 2 Integration
✨ Added
- Inception Labs provider with Mercury 2 for both speed and enhanced reasoning.
- API key support for Inception Labs in Settings (encrypted at rest).
- OpenAI‑compatible chat completions integration for Mercury 2.
- Model selector updates to include Mercury 2 (Speed + Enhanced Reasoning).
- Tooling updates so MCP tool metadata generation uses the selected provider.
🔧 Updated
- Provider-aware configuration across chat, settings, and tool outputs.
- Documentation and app metadata to reflect the new provider.
✅ Notes
- Reasoning effort parameters are forwarded for Mercury 2 reasoning mode.
- Migrations included for new
inceptionApiKeystorage.
v2.3.0 – Custom Web Search Tools
Custom Web Search Tools
This release replaces the single web search + list-search-domains flow with three domain-specific search tools so Ava can target the right sources:
- NetSuite docs – Official Oracle NetSuite Help Center (foundational docs, UI, permissions, SuiteScript API)
- Tim Dietrich – NetSuite developer blog (SuiteQL, SuiteScript, financial prompts)
- Folio3 – NetSuite integration & MCP (MCP setup, API workflows, reconciliation)
Highlights
- Settings → Custom Web Search Tools – Per-domain toggles control which search tools are available in chat. Only enabled tools are offered to the model.
- System prompt triage – The model is guided on when to use each search tool.
- Optional Redis cache – 7-day TTL for repeated queries per domain (set
REDIS_URLto enable). - Migration safety –
0005_dark_the_ordernow usesIF NOT EXISTSformaxIterationsReachedandmaxIterationsfor safe re-runs.
Also in this release
- Tool status badges support "Approval requested", "Approval responded", and "Denied".
- Get current config shows OpenAI provider with emerald styling.
- Upgraded
@ai-sdk/reactto ^3.0.26 (ai@6.0.50 via pnpm overrides).
Full changelog: CHANGELOG.md
v2.2.0 – Iteration Management System and Workflow
What's new
Iteration Management System and Workflow
- Flag-based max reasoning steps – No in-thread message injection; a database flag controls when the thread is locked.
- Configurable limit – Max reasoning steps (1–20) in Settings → AI Provider, default 10.
- Info card when limit is reached – Card appears above the input with three options:
- Check NetSuite KB and continue – Clears the flag and sends a message to search NetSuite web resources, then continues.
- No, I'm fine – Clears the flag and unlocks the thread.
- Brute force it – Clears the flag and sends a message asking the assistant to continue.
- Thread locking – Input stays disabled until the user chooses an option; the card persists on reload.
- API –
GET /api/chat/[id]returnsmaxIterationsReached;POST /api/chat/[id]/max-iterationsclears the flag. - Database – Single migration adds
UserSettings.maxIterations(default10) andChat.maxIterationsReached(defaultfalse).
Full changelog: v2.1.0...v2.2.0
v2.1.0 - OpenAI Support & Error Handling Improvements
🎉 What's New
OpenAI Provider Support
We're excited to add OpenAI as a third AI provider option! You can now choose between Google Gemini, Anthropic Claude, and OpenAI GPT models.
- GPT-5 Mini for speed mode - Fast responses and efficient tool calls
- O4 Mini for enhanced reasoning - Advanced reasoning capabilities for complex agent tasks, chained tool calls, and structured data analysis
- Full integration with existing settings and model selection UI
Note: For OpenAI enhanced reasoning features, you'll need to verify your organization at platform.openai.com/settings/organization/general
Improved Error Handling
Errors are now displayed directly in the chat interface with better visibility and persistence:
- Error messages appear as formatted cards in the chat
- Errors persist across page reloads
- Improved dark mode styling for better readability
- Better error recovery - you can send follow-up messages immediately after errors
🐛 Bug Fixes
Settings Modal
- Fixed intermittent form clearing issues that caused fields to appear empty
- Fixed provider dropdown display when switching between providers
- Fixed skeleton loading states to properly match input field dimensions
- Removed double scrollbar and improved overall layout spacing
Error Recovery
- Fixed status reset after errors to allow sending follow-up messages
- Fixed empty message prevention after errors occur
- Fixed stream interference issues when sending messages after errors
🎨 UI/UX Improvements
- Simplified settings save mechanism (removed "Save and Edit" dropdown)
- Updated model descriptions to accurately reflect the models being used
- Improved error card legibility in dark mode
- Better spacing between header, form content, and action buttons in settings modal
📦 Dependency Updates
- Upgraded
@ai-sdk/anthropicfrom v2.0.57 to v3.0.23 - Upgraded
@ai-sdk/googlefrom v2.0.26 to v3.0.13 - Resolved compatibility warnings for reasoning features
📚 Documentation
- Simplified README to focus on purpose and quick start
- Added documentation table of contents
- Added app screenshot and icon to README
- Removed redundant content (moved to dedicated documentation files)
🔧 Technical Improvements
- Comprehensive error handling with chat-related error filtering
- Error flag management to prevent stream interference
- Proper status management for error recovery
- Improved type safety in provider configuration
Full Changelog: See CHANGELOG.md for complete details.
v2.0.0 - Complete rewrite with Next.js and Vercel AI SDK
🎉 v2.0.0 - Complete Rewrite
Complete architectural overhaul from LangChain/Express to Next.js with Vercel AI SDK.
⚠️ Breaking Changes
This is NOT backward compatible with v1.x
- Complete rewrite - new codebase
- New database schema required (PostgreSQL with Drizzle ORM)
- New authentication flow (NextAuth)
- New API structure (Next.js App Router)
Major Changes
Architecture
- ✅ Migrated from LangChain/Express to Next.js App Router
- ✅ Replaced LangChain with Vercel AI SDK
- ✅ Migrated from file-based sessions to PostgreSQL with Drizzle ORM
- ✅ Added NextAuth for authentication
AI Providers
- ✅ Multi-provider support (Google Gemini, Anthropic Claude)
- ✅ Reasoning/thinking modes for both providers
- ✅ Speed vs Enhanced Reasoning model selection
Features
- ✅ Complete UI redesign with shadcn/ui components
- ✅ Chat history and persistence
- ✅ User management and authentication
- ✅ Settings management with encrypted API keys
- ✅ Title and summary generation for chats
License
- ✅ New Sustainable Use License with Unstacked Apps, LLC ownership
Migration Notes
Users upgrading from v1.x will need to:
- Set up new database (PostgreSQL)
- Run migrations (
pnpm db:migrate) - Re-authenticate with NetSuite
- Re-configure AI provider settings
Full Changelog
See CHANGELOG.md for complete details.