App Suite Releases
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • Release 8.55Upcoming
    • Noteworthy Changes
      • Important Changes
      • App Suite Middleware
    • Changelogs
      • App Suite UI
      • App Suite Middleware
      • Additional Components
        • AI Service
        • Booking Service
        • OX Guard UI
        • OX Documents
        • Switchboard
        • UI Service
    • Helm Charts
      • Helm chart values
      • App Suite Stack Chart
      • Booking
      • Helm Chart core-cacheservice
      • Helm Chart core-documentconverter
      • Helm Chart core-documents-collaboration
      • Helm Chart core-imageconverter
      • core-mw
      • UI Service
      • Switchboard
  • Release 8.54
  • Release 8.53
  • Release 8.52
  • Release 8.51
  • Release 8.50
Maintained. Older releases are best effort.
Upcoming
Not released yet
LTS
Long-term support branch
LTS discontinued
No longer supported, upgrade recommended

AI Service

5.11.2 - 2026-11-05

Fixed

  • LOCALAI_MODERATION_DISABLED switched off OpenAI moderation for every model (ASB-405) e8f58184
    • Moderation of service: openai models runs again when LOCALAI_MODERATION_DISABLED=true is set, which is the Helm default (localaiModerationDisabled: true). Since 4.8.0 that switch disabled the input check, the output check and the text-to-speech check for every OpenAI-compatible service instead of LocalAI only. LocalAI models stay unmoderated; moderationDisabled is the only global switch.
    • Deployments that point service: openai at a self-hosted endpoint without /v1/moderations now send moderation requests and fail on them. Use service: localai for self-hosted models, or set moderationDisabled: true.
  • Stable Label for AI Service Cleanup Job (ASB-301) e857bc39

5.11.1 - 2026-11-04

Fixed

  • Embeddings endpoint answers with 500 on every App Suite start without a vector store (ASB-432) 9a08a1e0
    • Load the Smart Search embeddings state on first use instead of at App Suite start, so users without Smart Search no longer call the embeddings endpoints
    • Return an empty list from GET /api/embeddings/ when no vector store is configured instead of an error

5.11.0 - 2026-10-30

Added

  • MCP contact writes, getMe and one error and output contract for all tools 81e8e77c
    • Add createContact and updateContact (scope write_contacts) and getMe with name, addresses, time zone, language and available modules
    • updateEvent checks conflicts, refuses stale writes and can remove attendees; createEvent creates recurring series from an RRULE
    • Event, task and contact writes require the item's timestamp and refuse changes made meanwhile
    • Every failure is a tool error with a code; results leave out empty values and give all times as ISO 8601 with the user's offset
  • Models.yaml key family: anthropic for Claude behind Bedrock application inference profiles (ai-service#295) bb55d819
    • A Claude model behind an application inference profile gets extended thinking, prompt cache points and single tool calls
  • OAuth authorization for MCP clients such as claude.ai and Claude Code 2f930d0d
    • MCP clients connect through OAuth with dynamic client registration and PKCE instead of a pasted API key
    • Users consent in App Suite and can revoke each connection separately in the AI settings
    • Enabled once mcp.publicUrl and mcp.oauthAppSuiteUrl are set; mcp.maxGrantsPerUser limits connections (default 10)
  • PostgreSQL with pgvector as an alternative vector store for Smart Search (AS-230) 11024a7d
    • Enabled with pgvector.enabled; new Helm values pgvector.url, pgvector.password, pgvector.secret.enabled and overrides.pgvectorSecret
    • The readiness probe stays red when Qdrant and pgvector are both enabled
  • Tables and charts in the AI chat 3d0b4efa 49136a46
    • Line, bar and pie charts and styled markdown tables in chat answers, with a What's new entry
  • Usage overview page for admins with token usage, cost and unique users 47170c85
    • Admin page at /admin/stats with budget, daily usage, 12-month history, breakdowns per feature, model and brand, and a CSV export
    • Unique users are estimated with HyperLogLog sketches that store no user IDs
    • Optional config section stats for budget, currency and prices; the Helm chart ships current OpenAI list prices
    • Admin pages are protected by an oauth2-proxy as Istio ext_authz provider (istio.oauth, istio.oauthProvider)
  • Feature catalog in the documentation 00ff6d22

Changed

  • AWS Bedrock provider on the Converse API with tool calling, reasoning and egress proxy (AS-249) 51584c5f e2d62e30
    • Replaces the InvokeModel based claude-aws implementation and adds tool calling, extended thinking, prompt cache points and stop-button support
    • Moderation via Bedrock Guardrails (BEDROCK_GUARDRAIL_ID) or a Claude Haiku classifier, optionally fail-closed
    • Credentials from the AWS SDK default chain or a Bedrock API key; the Helm chart renders its own ServiceAccount
    • AI_EGRESS_PROXY_URL and AI_EGRESS_NO_PROXY now apply to Bedrock traffic
    • See the AWS Bedrock section of documentation/models.md and helm/ai-service/README.md.
  • MCP digest without side effects, attendee classification, thread and slot tools, audit for every call, module scopes (ai-service#283) 461ff8d8 fdc862b8
    • getDailyDigestForUser no longer creates or deletes tasks and takes an optional since that returns what changed
    • Module scopes per API key with a configurable tier mapping (MCP_SCOPE_TIERS) and an expert mode in the AI settings; new keys default to the read tier
    • New getMailThread; getFreeBusy returns ranked slot candidates from the user's working hours
    • Every tool call writes an mcpAudit log line
  • Refuse MCP mail and invitations to external addresses by default 23ac75f4
    • Invitations, mail recipients and vacation notice text to addresses outside the global address book are refused unless MCP_EXTERNAL_INVITATIONS (Helm mcp.externalInvitations) is true
    • sendMail refuses drafts open in App Suite and does not report a mail as failed when only the sent-folder copy failed
  • Require AI consent before MCP tools send data to the model 2663e427
    • Digest summaries, calls to action and searchMailSemantic call the model only with consent, using the user's selected model
    • mcp.autoSummary now follows features.autoSummary when unset, so with the chart defaults the MCP digest no longer summarises
  • Restrict OAuth redirects to an operator allow-list and revoke manual keys with their sessions 89cad731
    • MCP_OAUTH_ALLOWED_REDIRECTS (Helm mcp.oauthAllowedRedirects) lists allowed redirect hosts and schemes; empty allows every redirect
    • Revoking a manual key logs out its Middleware session; GET and DELETE /api/mcp/key are deprecated
  • Analyse changed calendar events again and expire old analyses (ai-service#301) bac87397 b0e4edca
    • New POST /api/calendar/analysis; GET /api/calendar/{eventCompositeId}/analysis/{language} is deprecated
    • Analyses older than summaries.maxAgeDays are deleted
  • Structure prompts for provider-side prompt caching (AS-281) b62674ea
    • Prompts are ordered so OpenAI can serve the history from its cache; new metric ai_cached_tokens_total
  • Treat appointments marked as free as reminders in the away digest (ai-service#284) 30463324
  • Address users with Sie in the formal German UI outside the chat; the chat keeps "du" f7282d19
  • Restructure the documentation 23217060
    • New sidebar structure, landing page, architecture overview and in-browser search
    • Separate pages for MCP setup and internals and for Smart Search product and setup; one Upgrading page

Removed

  • Remove "clear chat" button from ai mail compose chat f7396cd3

Fixed

  • Apply plans.yaml and models.yaml changes at runtime without restarting the pods (ai-service#308) 14e22209
    • The service applies changes within one to two minutes; an invalid file is rejected and the previous configuration stays active while helm upgrade still reports success, so check the service log after a change
  • Appointments in a series are rendered twice when declined via AI chat (ai-service#298) ee60d75b
  • Chat history displays yesterday's chats under today (ai-service#314) bf2ee03d
  • Chat appointment and task searches missing results when the model converted the time range to UTC (ai-service#285) 349b7b95
  • Keep numbered lists in summaries (ai-service#291) aaa8d6c7
  • Select away digest appointments by what happened while away (ai-service#284) c9665034
    • Lists open invitations, appointments changed by others and missed occurrences, and names the reason for each
    • Birthdays and shared calendars no longer appear as unanswered invitations
  • Show appointments organized in another time zone at the user's time 61428c17
  • Memory extraction failing with OpenAI json_object format b3633a67
  • Read the io.ox/core settings from the JSlob tree e9fb9a18
    • MCP usage is now reported to OX Count; keys generated before the update keep reporting off until they are regenerated
  • Use ss instead of ß in AI texts for the de_CH locale (AS-311) bcd14bf7
  • Use KI instead of AI in the formal German UI 077a3418
  • Lowercase du in the informal German translation 2c68eec4
  • Mail compose AI chat header matches the mail compose header style 2ae072f2
  • Upper right corner not rounded in compose chat 69825005
  • Transparent ai-compose-chat background 984af1b9
  • Keep the chat send button at its size when the input grows e6ac7488
Prev
App Suite Middleware