Platform Changelog - EyevinnOSC/community GitHub Wiki

Platform Changelog

This page tracks deployed platform functionality, updated daily. It is indexed by the OSC architect RAG system so users can ask "what was recently deployed?" or "when did feature X ship?".


2026-07-03

osaas-app v7.83.0

  • Add repository sub-path field to My Apps create form — specify a subdirectory within your repository when deploying monorepo apps
  • Live log viewer for agent task runs now auto-enables and auto-scrolls when the run is currently in progress
  • Fix dashboard to show a retry option and user-visible error when instance data fails to load
  • Fix custom app domain update to surface domain ambiguity errors clearly
  • Fix managed tenant creation to show the correct error when a display name is already taken

osaas-ai v7.60.0

  • Add rotate-parameter-store-key MCP tool — rotates the parameter store API key and automatically updates all linked agent tasks and My Apps
  • Auto-retrieve configApiKey from the parameter store when configService is specified in agent task creation — no need to paste the key manually when using MCP
  • Add cursor-based incremental log fetch to get-agent-task-logs — reduces payload size for long-running tasks by fetching only new entries since the last call
  • Add server-level instructions to the MCP initialize response — AI tools like Claude Code and Cursor now receive OSC platform context for every tool session without needing a chat session

osaas-deploy-manager v7.69.0

  • Add support for EXTRA_TOLERATIONS configuration — allows service orchestrators to be scheduled on dedicated Kubernetes node pools

2026-07-02

osaas-app v7.82.0

  • Show a user-friendly error during app creation when the GitHub repository URL is wrong or the repository is private — the error message now instructs users to add a Personal Access Token instead of showing a generic 404
  • Add an "Ask the assistant" affordance to the Intent Recovery Banner — users who haven't deployed yet can click through to the AI assistant from the service suggestion cards
  • Improve contrast for the empty-state CTA button in the first-deploy card to meet accessibility standards

osaas-ai v7.58.0

  • Return a clear error when an unknown service ID is passed to estimate-service-cost instead of silently failing
  • Add Chatwoot live-chat integration to the Connect flow — the AI assistant can now register a website widget inbox in a Chatwoot instance when setting up live chat
  • Accept domains with http:// or https:// prefix in create-my-domain and update-my-domain — the scheme is stripped automatically so users no longer need to enter a bare hostname
  • Fix Valkey connection URL generation — a null or literal-undefined password no longer produces a malformed redis://undefined@host:6379 URL

osaas-deploy-manager v7.68.1

  • Fix app count metrics to fan out to Elastx — the /myapps/count endpoint now returns accurate totals across both clusters
  • Fix proxy service creation on new app deployments to use the correct public instance URL
  • Revert custom app URL to the default apps.osaas.io address when a custom domain mapping is deleted
  • Fan out Agentic SDLC task secrets to the secondary cluster — agent tasks now work correctly on both Linode and Elastx without manual secret replication

2026-06-30

osaas-app v7.81.0

  • Add explicit Cancel Subscription button to the subscriptions page — users can now cancel directly from the web console without needing to contact support
  • Show a Swedish flag badge on custom apps running on Elastx, indicating the app is hosted in a Swedish-owned data centre
  • Fix restart flow to send a valid JSON body, resolving intermittent 422 errors when restarting a custom app
  • Fix graceful degradation on Terraform deployments page when the backend times out
  • Fix stale magic-link redirect — expired magic-link emails now redirect to the login page instead of showing a blank screen

osaas-ai v7.57.0

  • Add supportsUpdate flag to get-service-schema — AI agents can now determine whether a service supports in-place updates before attempting one
  • Deliver Personal Access Tokens and parameter-store API keys via a one-time secure download link instead of displaying them inline in the chat
  • Fix JDBC connection URL for PostgreSQL and MariaDB — the jdbcUrl field in connection templates now returns jdbc:postgresql:// and jdbc:mariadb:// format, resolving XWiki startup failures
  • Fix MinIO storage operations to surface a clear recovery hint when the request signature does not match — previously this appeared as a generic error

osaas-landing-app v3.27.0

  • Replace the enterprise "Contact us" email link with a structured inquiry form on the pricing page

2026-06-26

osaas-app v7.80.0

  • Fix Manage Parameters modal to degrade gracefully when the parameter store returns a 404 or 503, showing a clear error instead of leaving the panel in a broken state
  • Add session guards to profile pages to prevent cryptic "digest mismatch" errors when sessions expire during navigation

osaas-ai v7.56.0

  • Distinguish "orchestrator unreachable" from generic network errors in instance-management tools — the agent now reports the cluster is down rather than retrying indefinitely
  • Require explicit confirmation before executing destructive MCP operations (delete, remake, restart) — agents must confirm intent before the action runs, per ADR-0030
  • Extend confirmation handshake to admin-remake-service — admin service rebuilds now require the same explicit confirmation as other destructive operations
  • Add update-my-app-source-ref MCP tool — repoints a custom app to a different git branch or commit SHA without needing to redeploy from scratch
  • Fix MinIO client to parse port and SSL settings from the instance URL — resolves connection failures when the MinIO endpoint uses a non-default port
  • Redact sensitive values at write time in the MCP secret scanner — secrets are masked before they can be stored in tool logs or conversation history

osaas-deploy-manager v7.66.2

  • Add sovereignty field to the MyApp response — indicates whether a custom app is hosted on Elastx (Swedish-owned, "se") or Linode/Akamai (US-owned, "us")
  • Thread secondary orchestrator domain through all HA standby operations — high-availability MyApps now correctly route standby lifecycle calls to the secondary cluster
  • Fix public hostname resolution in switchProxyTarget for Elastx-hosted apps — proxy target switches now use the correct public-facing hostname instead of internal cluster DNS

osaas-landing-app v3.26.0

  • Add Open Live launch post to the blog (authored by Magnus Svensson)
  • Fix attribution tracking to capture gad_source and gad_campaignid Google Ads parameters

2026-06-25

osaas-deploy-manager v7.65.7

  • Fix MyApp restarts in multi-region deployments — restart operations now route through the correct orchestrator URL and succeed reliably across all five runner types
  • Fix app build status detection to probe the app's public endpoint rather than internal cluster DNS — reduces false "still building" states on newly deployed apps
  • Fix MyApp list deduplication — when the same app appears on both primary and secondary sites, the primary site entry now takes precedence

2026-06-24

osaas-app v7.79.0

  • Add live email search to the team members list — admins can now filter by email address without scrolling through the full list
  • Show a friendly error when the parameter store is temporarily unreachable in the Manage Parameters panel instead of leaving it in a broken state

osaas-deploy-manager v7.64.0

  • Fix app rebuilds sourced from Gitea repositories — the admin token in the source URL is now refreshed on every rebuild so stale credentials no longer cause build failures
  • Fix PostgreSQL connection URL detection to recognise both postgres:// and postgresql:// schemes

2026-06-23

osaas-app v7.78.1

  • Surface the specific reason when workspace deletion is blocked — users now see which active subscriptions are preventing deletion instead of a generic error
  • Auto-regenerate a stale service secret when the platform access token has been rotated — reduces "service secret expired" failures after credential rotation
  • Fix log viewer stability during pod restarts — cancellation errors no longer surface as UI errors in the live log panel
  • Improve text contrast in the empty AI assistant panel (WCAG AA compliance)

osaas-ai v7.55.0

  • Return a clear "service does not support updates" message when update-service-instance is called on a service that lacks an update endpoint (404/405), so the agent can communicate the limitation rather than emitting an opaque error
  • Detect "build in progress" placeholder pages during wait-for-app-ready probing — avoids incorrectly reporting a newly deployed app as ready before it has started
  • Handle platform-overload errors (MaxRetriesPerRequestError) with a structured PLATFORM_UNAVAILABLE response rather than crashing the tool call
  • Intercom setup now confirms each dependency is fully running before proceeding, even when the dependency was created in a prior session

osaas-deploy-manager v7.63.0

  • Tag custom domain ingresses with the owning tenant ID (osaas.io/tenant-id label) — improves observability and enables per-tenant filtering in cluster tooling

2026-06-22

osaas-deploy-manager v7.62.0

  • Support configurable ingress class for custom-domain ingresses via environment variable — enables deployments on clusters with non-default ingress controllers

osaas-landing-app v3.23.1

  • Fix YouTube video loading in the How It Works section — CSP now allows youtube-nocookie.com embeds so the demo video plays correctly

2026-06-21

osaas-app v7.78.0

  • Remove Easy Install option from the service creation modal — workspace setup now offers AI-assisted or Advanced (manual) setup only
  • Fix duplicate WebSocket connections from the Chatwoot live chat widget
  • Fix cost estimate display to match the post-creation per-day cost breakdown
  • Fix user-friendly error message when the My Apps list fails to load due to a timeout
  • Fix service deletion to treat a cast-receiver "No such instance" 500 as a successful no-op, matching the existing 404 handling

osaas-ai v7.54.0

  • Add refresh-workspace MCP tool — re-reads which workspace the current token maps to, useful when the agent appears to be managing the wrong workspace after reconnecting or switching sub-workspaces
  • Add wait-for-service-ready MCP tool for catalog service instances — polls until the instance reports healthy or times out after 5 minutes; called automatically after create-service-instance
  • Fix PAT management tools to connect to the correct token service endpoint

osaas-catalog-manager v7.2.0

  • Add publish/unpublish support for services with a status field — services can now be toggled between published and unpublished states in the catalog

osaas-deploy-manager v7.61.2

  • Add error handling to prevent HTTP 500 on Kubernetes API failures — infrastructure errors now return a structured error response instead of crashing the request

osaas-landing-app v3.23.0

  • Add click-to-load YouTube embed in the How It Works section — video loads on click to avoid auto-loading third-party resources on page visit
  • SEO improvements: Organization entity markup, Products footer links, and sitemap aggregation for better search indexing

2026-06-18

osaas-ai v7.53.1

  • Return a clear AUTH_REQUIRED error when MCP tools try to access a parameter store that requires authentication, so the agent knows to configure auth before retrying
  • Fix setup-parameter-store to handle responses where the instance URL is not yet available, avoiding a crash during slow provisioning
  • Inform the agent that delete-parameter-store takes up to 2 minutes to fully propagate, preventing false "still exists" retry loops
  • Auto-fetch startup logs when create-service-instance reports a startup failure — the agent can now diagnose config errors and missing env vars without a separate get-logs-for-instance call

osaas-deploy-manager v7.61.1

  • Fan out MyApp runner-namespace secrets to the Elastx (prod-se) cluster — secrets created for MyApp instances are now automatically replicated to both Linode and prod-se
  • Create the correct TLS certificate issuer alias during prod-se provisioning, fixing certificate issuance failures when deploying new service instances to the Sweden region
  • Remove the fallback URL from parameter store creation response to prevent agents from connecting to an endpoint before the instance is ready

osaas-landing-app v3.22.1

  • Redirect /status to status.osaas.io — the platform status page now shows the hosted status dashboard instead of a broken embed

2026-06-17

osaas-ai v7.53.0

  • Add osc_search_tools and osc_call_tool meta-tools for operator-mode embedding — osc_search_tools returns a lightweight tool catalog (name + description, filterable by category or query), osc_call_tool dispatches to any OSC tool without exposing the full schema surface
  • Fix storage credential detection to identify the new-instance propagation window: when MinIO credentials are not yet active after instance creation, the tool now returns a clear message to wait 30 seconds and retry rather than a generic error

osaas-deploy-manager v7.61.0

  • Fan out service instance restart calls to the Elastx (prod-se) cluster — restarting an instance from the dashboard or via MCP now propagates to both Linode and Sweden regions

2026-06-16

osaas-app v7.77.0

  • Show a human-readable error when subscription or entitlement limits block instance creation
  • Show the variable names in "missing required variables" errors so users know exactly which configuration is incomplete
  • Redirect expired or reused magic-link sign-ins to a dedicated /auth/error page instead of a 500 error
  • Add outcome-led service descriptions and an in-card "Ask the assistant" button to the empty-state first-deploy card
  • Fix paste mode for the OSC token field when editing an agent task with no token saved
  • Fix createAgentTask to reject invalid sourceUrl values before they reach the backend

osaas-ai v7.52.0

  • Add composition mode to estimate-service-cost to estimate the combined cost of a set of services as a group
  • Return a clear message when get-logs is called on a service with no log endpoint rather than returning an opaque error
  • Add server-side read-only mode: append ?mode=readonly to the MCP URL to restrict all tools to read-only operations
  • Require cost confirmation before create-service-instance completes when the estimated cost exceeds the workspace token budget
  • Fix network error context in PAT fetch calls and handle stale MinIO credentials and TLS errors in storage tools

2026-06-15

osaas-app v7.76.0

  • Add Regenerate credentials button to the parameter store page so users can rotate the CONFIG_API_KEY without recreating the store

osaas-ai v7.51.0

  • Organize all MCP tools into named categories — AI assistants now filter by category (e.g. ?filter=databases) more reliably

osaas-deploy-manager v7.59.0

  • Surface clone failure reason and add GitHub repository pre-flight check in MyApps setup
  • Show open pull-request status on Agentic SDLC sub-tickets in the issues list
  • Fan-out parameter store secret create/delete/rotate operations to the Elastx cluster automatically

2026-06-12

osaas-app v7.75.0

  • Add git credential reference option when creating agent tasks (select a stored credential instead of pasting a token)
  • Add inline tenant ID availability check during workspace creation
  • Add "Talk to us" and "Book a call" link in the empty-state dashboard hero
  • Fix secret reference name overflow in the instance parameters display
  • Fix token expiry input validation to prevent creating tokens with invalid expiry dates
  • Show "In review" status for Agentic SDLC sub-tickets that have an open pull request

osaas-ai v7.50.0

  • Add git credential reference field to create-agent-task and update-agent-task MCP tools
  • Add operator mode detection — append ?mode=operator to the MCP URL for operator-scoped tool access
  • Fix health checks for queue-worker services that have no HTTP endpoint
  • Reject embedded {{secrets.*}} placeholders passed directly inside service parameter values
  • Allow claude.ai origins in CORS so the OSC MCP server works from claude.ai
  • Fix restart-service-instance MCP tool to return a structured error when the instance link is not found
  • Auto-supply the OSC access token in create-agent-task when not provided

osaas-deploy-manager v7.57.0

  • Copy the GitHub token to the stage app during stage environment provisioning

2026-06-11

osaas-app v7.74.1

  • Show a proactive help nudge ("Still exploring? We're here if you need a hand") in the empty-state dashboard after browsing services for 10 minutes without deploying
  • Fix token usage estimate dialog contrast and link styling
  • Fix OAuth token minting to correctly tag tokens as OAuth-issued in /api/connect/token

2026-06-10

osaas-app v7.73.0

  • Exempt OAuth-issued tokens from the PAT lifetime cap, allowing OAuth apps to mint long-lived PATs on behalf of users
  • Fix log viewer to stack entries vertically instead of overlapping
  • Surface agentic setup links at the empty-state activation moment
  • Remove deprecated GET /api/user/pat endpoint
  • Fix live-mode log polling: first fetch is now immediate, pagination state resets correctly
  • Handle 404 responses from service API gracefully as instance-not-found in stop and manage actions
  • Show token balance, refill model, and zero-state in the deploy modal

osaas-ai v7.49.2

  • Fix list-user-inbox-items MCP tool returning truncated results when the response is paginated
  • Extend restart-my-app rate limit window to 60 minutes
  • Add terminal-error guidance to admin-remake-service tool description
  • Add circuit-breaker and recovery hints to parameter-store operations

osaas-deploy-manager v7.56.2

  • Fix Agentic SDLC: task secrets now fall through to the legacy secret store when a key is missing from the primary store

osaas-lib-token v0.11.0

  • Add generateOAuthToken() and isOAuthToken() to the @osaas/token SDK for tagging and identifying OAuth-issued tokens

2026-06-09

osaas-app v7.71.0

  • Add reload button to My Apps requests page (Agentic SDLC)
  • Allow referencing a saved git credential when creating a MyApp (select from dropdown instead of pasting token)
  • Hide public-access toggle for HTTP-only instances that have no NodePort (prevents confusing no-op toggle)

osaas-ai v7.49.0

  • Surface NodePort endpoints in describe-service-instance — UDP-based services (STUN/TURN, SRT) now show host:port endpoint lines and a usage hint

osaas-deploy-manager v7.56.1

  • Fix Agentic SDLC: propagate configApiKey to stage app on stage-link callback so encrypted parameter stores work end-to-end
  • Fix Agentic SDLC: widen PR review trigger to include all human reviewer comments (not only [blocking]-tagged ones)
  • Fix MyApps: add 30-second minimum-age guard to prevent false rebuild triggers from stale pod observations
  • Fix MyApps: map HTTP 404 response to running state during build status polling for Python/Go/dotnet/WASM runtimes
  • Fix certificate issuer: use GTS ClusterIssuers when acmeIssuer=gts is configured

2026-06-08

osaas-app v7.69.0

  • Fix: stop retrying POST/PUT/PATCH/DELETE requests on fetch timeout (only GET/HEAD safe for retry)

osaas-ai v7.48.2

  • Surface actionable error when a My Domain proxy name exceeds the 63-character DNS limit
  • Add divergence detection to restart-my-app rebuild=true to prevent unnecessary rebuilds
  • wait-for-app-ready returns terminal not_found when the app 404s during polling
  • Clarify set-instance-public-access controls TCP port exposure only, not HTTP auth-gate access
  • Handle deploy-manager "already removed" 200 response as a clean not-found on app delete
  • Use pre-flight getApp result to detect non-existent apps before delete, avoiding false 404 errors

osaas-deploy-manager v7.55.0

  • Fix proxy Service name validation to enforce the 63-character DNS-1035 limit (was incorrectly allowing 253)

osaas-lib-orchestrator v4.6.2

  • Use serviceId as stable DNS label for TCP ingress hostnames instead of per-tenant appName

2026-06-07

osaas-lib-orchestrator v4.6.1

  • Fix wildcard TLS cert host binding to use stable API domain
  • Fix orphaned ReplicaSets after service instance deletion
  • Fix port-name suffix incorrectly appended to TCP ingress hostname

2026-06-05

osaas-app v7.68.0

  • Show Swedish flag badge on service cards and detail page for prod-se instances

osaas-deploy-manager v7.54.8

  • Make ACME issuer configurable (LE default, GTS optional)

2026-06-04

osaas-token-service v7.0.5

  • Remove cache bypass workaround now that fast-jwt v6 is safe

2026-06-03

osaas-ai v7.47.1

  • Add start-git-credential-registration MCP tool: initiates browser-based PAT registration, returns a one-time URL valid for 10 min
  • Add get-git-credential-setup-instructions MCP tool: returns a ready-to-run curl command for headless/CI environments
  • Add list-git-credentials MCP tool: list registered credential names and timestamps (PAT values are never returned)
  • create-my-app now accepts a gitCredential parameter — pass a pre-registered credential name instead of a raw PAT
  • update-my-app-github-token now accepts gitCredential for rolling token rotation with no downtime
  • Return structured error from restart-my-app when the app is still in creating state
  • Return structured 409 from update-my-app-github-token on conflict
  • Return structured error for non-managed buckets in list-objects-on-bucket
  • enable-app-stage-prod response now includes async-init guidance for apps initialising after first enable

osaas-deploy-manager v7.54.2

  • Consolidated tenant instance list now aggregates across primary and secondary hosting sites (multi-region support)
  • Return 404/503 instead of generic 500 when version listing fails during Agentic SDLC operations
  • Propagate subPath and analyticsService to stage app provisioner in Agentic SDLC

osaas-landing-app v3.20.2

  • Replace PayPal with Stripe as payment provider on purchase pages

2026-06-02

osaas-app v7.65.0

  • Add Git Credentials tab to My Apps dashboard for private repository access without sharing raw tokens
  • Add browser-based PAT registration page for secure git credential setup (PAT never passes through MCP or chat)
  • Add rate limit and client-side cooldown to magic link login flow
  • Fix overlapping labels in Add Git Credential modal
  • Fix submit button not disabled while create-team form is pending
  • Fix: show service instances without requiring a subscription record

osaas-ai v7.46.0

  • Add start-git-credential-registration MCP tool: initiates browser-based PAT registration, returns a one-time URL (valid 10 min)
  • Add get-git-credential-setup-instructions MCP tool: returns a ready-to-run curl command for headless/CI credential registration
  • Add list-git-credentials MCP tool: list registered credential names and timestamps (PAT values never returned)
  • create-my-app and update-my-app-github-token now accept gitCredential parameter; inline token args deprecated
  • get-service-schema uses structured fuzzy matching for improved service discovery
  • Auto-diagnose on update-service-instance Unknown reason failures
  • Add list-all-feedback admin tool
  • Add create-personal-access-token, list-personal-access-tokens, revoke-personal-access-token MCP tools
  • Expose OscEntry DLL field on dotnet My App via MCP

osaas-deploy-manager v7.54.0

  • Support private repository git credentials — store a named PAT, reference it by name at app creation and git-token rotation
  • Add git-credential-session mint and redeem endpoints backing the browser-based PAT registration flow

osaas-landing-app v3.20.0

  • Add AI agent safety section to homepage
  • Add lifecycle tools section to /mcp page

osaas-token-service v7.0.4

  • Widen SAT cookie domain to .osaas.io for cross-cluster authentication

2026-06-01

osaas-app v7.63.1

  • Fix /api/auth/login to redirect correctly to /api/auth/signin (308)

osaas-deploy-manager v7.53.0

  • Add OscEntry DLL field to dotnet MyApp — pin the entry DLL at creation or update it later in Settings
  • Faster app deletion with parallelized runtime probing

2026-05-31

osaas-app v7.63.0

  • Auto-trigger Trivy security scan after every rebuild
  • Fix linked issue URL input invisible in dark mode
  • Add 10s timeout to deleteMyApp with clear abort error

osaas-deploy-manager v7.52.0

  • Fix agent task completion tracking: route syncRunningTaskStatus through updateRunInHistory

osaas-landing-app v3.18.0

  • Add MCP integration guide link to Codex tutorial What's Next section

2026-05-30

osaas-app v7.62.0

  • Show sign-in code confirmation message and enable OTP autofill on magic-link login
  • Pre-populate feedback drawer fields from the list item to fix empty linked issue URL
  • Close plan downgrade warning modal immediately on API success

osaas-ai v7.44.2

  • Add list-service-instances preflight and terminal-error guidance for bulk delete operations

osaas-deploy-manager v7.51.1

  • Automatically probe and refresh stale Gitea tokens in Agentic SDLC workflows

2026-05-29

osaas-app v7.61.0

  • Show platform build status (building/running/failed) in the My Apps logs modal
  • Context-aware empty-state message in logs modal when app is still building

osaas-ai v7.44.1

  • Paginate list-parameters to return all keys when a store has more than one page
  • Steer create-my-app to wait-for-app-ready instead of get-my-app after creation
  • Add required-field guard to create-service-instance to catch missing mandatory fields early
  • Require list-service-instances preflight before bulk delete to prevent stale-name failures

osaas-deploy-manager v7.51.0

  • Make /enable endpoint async, returning 202 Accepted immediately

osaas-landing-app v3.17.0

  • Add VS Code Bearer token auth header option to /mcp setup page
  • Add Windsurf setup tab to /mcp page with mcp_config.json snippet

2026-05-28

osaas-app v7.60.0

  • Use per-domain delete to handle secondary-slot custom domains
  • Show tenant and user names in feedback list
  • Show confirmation modal after plan downgrade
  • Show workspace name in feedback table Tenant/User column
  • Close restart modal immediately for HA apps

osaas-ai v7.44.0

  • Emit DAU by product attribution (liivo/osc)
  • Add stop-condition to get-parameter to prevent exhaustive store search
  • Add Gitea repo recovery workflow to system prompt

osaas-deploy-manager v7.50.0

  • Correct off-by-one in secondary proxy slot length check

2026-05-27

osaas-app v7.59.0

  • Surface My Apps as equal activation path in dashboard empty-state
  • Add Pro plan first-session value walkthrough after subscription activation
  • Add voucher code input to activate-subscription modal
  • Add Trial ends column to admin subscriptions table
  • Add voucher promo code toggle to day-0 FirstDeployCard footer
  • Prevent secret name chip from overflowing modal edge
  • Show trial end date in Token Usage card
  • Apply voucher code during Stripe checkout via successUrl redirect
  • Hide trial end banner for users on paid plans

osaas-ai v7.43.0

  • Use port 8080 fallback in Node.js and Python skill examples
  • Add MCP subagent guidance and get-mcp-config tool
  • Strengthen service ID anti-patterns and add circuit-breaker
  • Add list-feedback trigger for feedback status queries
  • Redact secrets in assistant messages before MongoDB persistence

osaas-deploy-manager v7.49.1

  • Add backfill-secrets entry point and fix K8s job manifest
  • Surface K8s failure condition message in backup records

osaas-landing-app v3.16.0

  • Add AI Agentic Engineer MCP block above the fold
  • Pre-render service list in SSR for SEO/AEO
  • Bump service-count refs from 180 to 183

osaas-money-manager v7.13.0

  • Expose trialEnd in TenantPlan schema for admin trial date visibility
  • Persist trialEnd in MongoDB to avoid redundant Stripe API calls on GET /tenantplan