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-10-12

osaas-app v8.25.0

  • Add Liivo first-deploy emails for day 0, 3 and 7

osaas-ai v8.15.1

  • Fix wait-for-parameter-store so it keeps polling when the route returns a 404 while starting

osaas-deploy-manager v8.19.0

  • Fix My Apps build status so the ingress default server answer is no longer treated as a ready build
  • Expose the instance service allowlist on GET /mycdn/enabled
  • Fix the CDN fallback domain zone suffix per environment

2026-10-11

osaas-app v8.24.0

  • Add a Getting started video to the start page empty state
  • Add a root-domain A record option in the My Apps DNS Configuration dialog
  • Add View runs entry point with run history and logs for My Jobs
  • Add a voucher field under the plan choice when creating a workspace
  • Add an Earlier conversation divider for restored inline AI chat messages
  • Show an upgrade prompt when a free workspace with zero balance is refused a service action or resume
  • Fix token packs so they no longer expire and update the copy
  • Fix the Plan changed title for immediate step-downs
  • Fix the cookie banner placement on mobile landing pages
  • Raise the deploy order timeout so slow deploys no longer show an error

osaas-ai v8.15.0

  • Add root-domain A-record DNS options to the my-domain MCP tools
  • Add custom-domain DNS guidance for root domains to the AI chat
  • Fix wait-for-app-ready so ingress default-server answers are not reported as ready
  • Fix wait-for-parameter-store retry on transient edge 404 responses
  • Fix CouchDB readiness probe when the database URL includes a database name

osaas-deploy-manager v8.18.0

  • Add run history and run logs endpoints for My Jobs (GET /myjobs/:name/runs and /runs/:runId/logs)
  • Accept and return gitCredentialRef on POST and PATCH /myjobs
  • Add stable OSC hostnames and certificate renewal for My CDN sites

osaas-money-manager v8.11.0

  • Fix paid-to-paid downgrade within the billing window
  • Allow /pricing for Stripe tenants whose subscription has ended
  • Add a voucher preview endpoint for the signup plan step

osaas-landing-app v3.52.1

  • Link the migrate-from-managed-PaaS page from the footer

2026-10-09

osaas-app v8.23.0

  • Add a step down to the next lower paid plan in the Cancel Subscription flow
  • Show a free months status panel on the pricing and subscriptions pages
  • Add agent-aware sign-in copy when an AI agent connects to OSC
  • Add direct Personal plan checkout links on token exhaustion surfaces
  • Honour per-workspace token refill overrides
  • Fix the Change Secret dialog crash
  • Fix secret picker to reference the exact name a workspace secret was created under, with clearer failure messages
  • Fix upgrade links in the Create Instance modal and custom domain prompt so they navigate
  • Hide the token percentage in the account menu when the balance is zero or negative
  • Fix sitemap.xml access and advertise it in robots.txt
  • Send Liivo sign-in, welcome and plan-change emails from the Liivo sender

osaas-ai v8.14.2

  • Fix readiness probing in wait-for-service-ready so a missing instance ends the wait instead of retrying

osaas-deploy-manager v8.17.0

  • Fix My Job runner secret names so long job names no longer collide
  • Fix My Pages so an existing MinIO root password secret is not overwritten when a page is created

osaas-money-manager v8.10.0

  • Add CDN meter configuration for usage billing

2026-10-08

osaas-deploy-manager v8.16.0

  • Fix false 409 conflicts on My Agents with a stale Running status and guard against overlapping manual runs
  • Pass the stored runner token and config API key when a My Job is run manually
  • Store the config API key per My Job, with fallback to the legacy tenant key
  • Add CDN provisioning, traffic caps, plan reconciliation and usage reporting (behind the CDN feature flag)

2026-10-07

osaas-app v8.22.0

  • Use net runway for low-token and first-deploy customer emails
  • Restore the saved conversation in the inline AI chat
  • Show generic usage meter rows in the Workspace Usage view
  • Request Enterprise in-app from the upgrade dialog instead of opening a mail client

osaas-ai v8.14.1

  • Exempt My Page file upload tools from the secret-entropy scanner so uploaded site files are no longer blocked

osaas-deploy-manager v8.15.0

  • Serialize HA state for Python My Apps, hide the standby instance from listings and clean it up

osaas-money-manager v8.9.1

  • Persist the trial end date on the tenant plan when Stripe Checkout completes

2026-10-06

osaas-deploy-manager v8.14.0

  • Preserve the orchestrator ENVIRONMENT on remake and align certificate names with it
  • Keep shared service ingresses non-empty

osaas-landing-app v3.51.0

  • Link the Keycloak user-migration guide from the /baas page in all five locales

osaas-app v8.21.0

  • Replace the Enterprise "Contact Sales" link with a Request Enterprise button on the pricing page
  • Keep the Stripe confirmation modal open after the URL parameter is removed
  • Show a single Manage tags popover anchored to the Actions icon on My Pages
  • Point terms links to www.osaas.io/terms

osaas-ai v8.14.0

  • Return a brand-aware upgrade link for Liivo sessions from the custom domain plan gate and the mailbox creation refusal
  • Wire the shared SFU key for Intercom setup in AI chat and re-verify startup status
  • Ask for confirmation in AI chat before restarting instances not created in the conversation

osaas-deploy-manager v8.14.0

  • Preserve the orchestrator environment when a service is remade and align certificate names with it

osaas-landing-app v3.51.0

  • Link the Keycloak user-migration guide from /baas in all five locales

2026-10-05

osaas-app v8.20.0

  • Apply a voucher in the purchase modal and show the active voucher after checkout
  • Warn that a failed non-HA My App rebuild leaves the app down
  • Correct the Run Logs unavailable copy in Agent Tasks and set log availability from live polling
  • Hydrate the inline AI chat from the saved conversation

osaas-ai v8.13.1

  • Accept any git host in the git credential registration MCP tools
  • Rank and cap osc_search_tools query results
  • Correct the php-runner memory limit to the measured 512Mi in get-runtime-limits

osaas-deploy-manager v8.12.0

  • Apply My App basic auth to all domain slots, including secondary custom domains
  • Apply My Page basic auth to custom domains attached after auth is enabled
  • Send Cache-Control private, no-store on basic-auth protected My App and My Page ingresses
  • Return 503 instead of 402 when the plan lookup fails on the custom-domain gate
  • Remove orphan custom-domain proxies after a failed My App create or build timeout
  • Report build status as unknown for a non-signature healthz 500

osaas-money-manager v8.9.0

  • Apply a voucher as a Stripe Checkout free trial and add a voucher validation endpoint
  • Return 401/403 with a reason for missing or revoked PATs on voucher and Stripe routes
  • Add Enterprise plan custom pricing and Enterprise Checkout at the tenant's custom price
  • Close open invoice bills when switching from INVOICE to STRIPE checkout

2026-10-03

osaas-app v8.19.0

  • Add upgrade buttons to the Add Domain and Edit Domain dialogs and to My Page custom-domain attachment when the Professional plan is required
  • Accept an access token from any git host on the credential paste page
  • Say "free months" instead of "free trial" in dashboard banners, the Token Usage tile and the downgrade feedback modal
  • Add checkout return screens to the managed-tenants page
  • Infer the Liivo brand from the resource parameter on OAuth authorize

osaas-ai v8.13.0

  • Return the plan refusal with an upgrade link from the domain MCP tools when custom domains require the Professional plan

osaas-money-manager v8.8.0

  • Add an endpoint to set the sub-workspace billing exception without a full plan update

2026-10-02

osaas-app v8.18.0

  • Require typing the project name to confirm deleting everything in a project
  • Gate non-Free sub-workspace creation on delegated Stripe checkout
  • Make the Create My App, Jobs and Add Domain dialogs scroll so all fields are reachable
  • Point the cookie banner privacy link at www.osaas.io/privacy

osaas-ai v8.12.0

  • Mask connection-URL passwords in create-database and describe-service-instance responses
  • Stop setup-git-repo from echoing the Gitea admin token; push instructions now use a <GITEA_PUSH_TOKEN> placeholder with a one-time download link (60 minutes, up to 3 downloads)
  • Gate create-agent-task and create-storage-bucket behind the Free-plan zero-balance check
  • Make wait-for-app-ready more reliable with a generation gate and 404 debounce

osaas-deploy-manager v8.11.0

  • Add a swap-primary route for custom domains
  • Plan-gate switching a domain to a custom domain, while managed domains stay available on every plan
  • Fall back to the secondary domain slot for the My App URL when the primary slot is empty
  • Remove secondary custom-domain slots when a My App is suspended

2026-10-01

osaas-app v8.17.0

  • Surface evicted pod count on the instance health UI
  • Scope TagFilterBar tag counts to the correct resource type, fixing a mismatch where a tag chip's count didn't match the filtered list
  • Add submit and close buttons to the Manage tags popover

osaas-ai v8.11.3

  • Give delete-my-app a neutral orphan message with accurate orphan-check labels
  • Cap get-my-app-logs and diagnose-my-app output size by default (defaults to the most recent 300 lines with a byte-size backstop, reporting truncated: true when capped)
  • Gate create-my-job and create-database behind the FREE-plan zero-balance check

osaas-deploy-manager v8.10.0

  • Scope the storage utilization PromQL selector to the exact namespace and PVC name, fixing cross-instance bleed in reported storage usage

2026-09-29

osaas-app v8.16.1

  • Fix My Running Services tag-editor popovers to open reliably, both on mobile and desktop and from the overflow dropdown and the Instance Card
  • Pin favorited sub-workspaces in the mobile hamburger menu regardless of parent collapse
  • Show empty sensitive/list fields as "Not set" in the instance parameters modal
  • Add an explicit 60s timeout override to the My App creation request to avoid premature timeouts

osaas-ai v8.11.2

  • Correct PHP runner upload limits reported by the get-runtime-limits MCP tool
  • Raise the setup-parameter-store timeout to 55s and correct its tool description
  • Fix the wait-for-parameter-store readiness probe misreporting auth rejections as not-yet-listening
  • Fix create-my-domain to no longer duplicate an existing mapping
  • Gate the resume-suspended-instance MCP tool behind the FREE-plan zero-balance check

osaas-deploy-manager v8.9.1

  • Add bounded retry to per-runtime instance listing in GET /myapps for resilience against transient runner errors
  • Surface per-runtime listing failures via response headers on GET /myapps
  • Fix the My Apps health-poll to fail fast only on a genuine runner build failure, not any transient HTTP 500
  • Preserve existing origin-path routing when updating a custom domain via PUT /mydomains/:instanceName
  • Fix DELETE of a My App to correctly distinguish "already removed" from "never existed" and clean up orphaned secondary-domain resources
  • Harden asynchronous My App creation with a shared creation-window record and timeout reconciliation, preventing stuck "building" states
  • My App creation now warns, rather than blocks, when a referenced parameter store is unreachable
  • Fix ghost/failed My App build records to show the real attempted runtime type instead of defaulting to nodejs

osaas-lib-orchestrator v4.12.1

  • Instance status now reports "running" only once the container is actually ready, not just scheduled
  • Reject instance creation when a {{secrets.X}} reference has no matching Secret
  • Fix NodePort Service and UDP gateway re-provisioning when toggling an instance between private and public access
  • GET /internal-endpoint/:id now returns 404 when the instance does not exist

osaas-landing-app v3.50.0

  • Add a data pipeline stack recipe to the data pipelines page
  • Fix pricing page token-pack copy: packs do not expire and require a paid plan

osaas-maker v4.10.1

  • Thread the memoryMiB config env var into instance service options
  • Make Job activeDeadlineSeconds configurable in templates

osaas-token-service v8.0.1

  • Close a PAT revocation bypass in the service delegation endpoint (POST /delegate/:serviceId)

2026-09-28

osaas-app v8.15.0

  • Preserve query string on signed-out /dashboard/* redirect fallback
  • Surface switch-channel failures and gate modal dismiss during switch
  • Round token values displayed on admin tenant pages
  • Add admin tenant notification-emails lookup endpoint
  • Remove comma-grouping from admin token value display
  • Real HTTP redirect for anonymous /browse/:serviceId?create=1 in middleware

osaas-deploy-manager v8.8.0

  • Wire memoryMiB into orchestrator ConfigMap and Deployment env
  • Resource tag registry — storage, API, delete hooks, orphan sweep

2026-09-25

osaas-app v8.14.1

  • Exclude the literal "undefined" string when building switch-channel instance config
  • Log storage headroom fetch failures instead of silently hiding all errors

osaas-landing-app v3.48.0

  • Wire heroTitle/heroDescription i18n keys for 10 more use-case pages

2026-09-24

osaas-app v8.14.0

  • Remove hardcoded 14-day free trial badge and modal text
  • Fix verifySuperAdmin error handling in admin catalog actions so failures surface correctly instead of escaping the try block
  • Add session guard to getAgentSetup to silence spurious errors when a session is incomplete
  • Add storage headroom indicator to stateful service instance pages
  • Fix account deletion to detect instances across all clusters (previously missed Elastx-hosted instances)
  • Simplify the Agent Connector MCP URL shown in Settings → MCP (dropped the /all suffix; bare /mcp already defaults to operator mode)

osaas-ai v8.10.0

  • admin-get-tenant-plan now gives actionable not-found guidance on a 404 instead of a generic retry message
  • Add per-tenant audit stats census and an audit-log truncation signal for admin tooling

osaas-deploy-manager v8.7.1

  • Fix MyApps rebuild to reconcile via a status check before declaring a rebuild create failed, closing a permanent-data-loss path on gateway timeouts
  • Run MyApps rebuild's remove+create+poll cycle in a background task so the request returns immediately instead of risking a duplicate rebuild on retry

osaas-landing-app v3.47.1

  • Wire media-asset-indexing page H1/subtitle text to existing i18n keys

osaas-money-manager v8.6.0

  • Fix invoice plan-type resolution for product-specific Stripe prices, and include the originating OSC product on UTM attribution reporting

2026-09-23

osaas-app v8.13.0

  • Update the ChatGPT Desktop MCP connector card to a Codex-based connect-prompt flow, replacing the native "Add custom connector" setup (no longer requires a Pro/Team/Enterprise/Edu plan)
  • Fix Claude Desktop connector card step copy and add an MCP URL field
  • Reorder the AI agent connector picker so ChatGPT appears before Claude
  • Round token counts to integers on the usage page and navigation bar

osaas-ai v8.9.0

  • Resolve the time window before running usage aggregations and validate date inputs
  • Warn when tool arguments contain undeclared keys stripped by the schema
  • Add admin-get-tenant-usage tool for running instances and lifetime token usage
  • Migrate Slack action inputs to v4 API so deploys are no longer gated by notifications
  • Replace misleading oversized-file guidance with a create-storage-bucket hint
  • Add graceful context-window error recovery in ask-osc-architect

osaas-deploy-manager v8.7.0

  • Gate custom domains to the Professional plan and above
  • Add GET /storage/:serviceId/:instanceId endpoint for PVC storage utilization

osaas-landing-app v3.47.0

  • Publish per-plan resale position across all locales
  • Add media pipelines page and stack recipe
  • Add [locale] route segment for homepage locale pages
  • Add media asset indexing page and stack recipe
  • Replace YouTube iframes with web-player HLS streams on demo pages
  • Add poster image for hero demo video

osaas-money-manager v8.4.0

  • Rename FREE plan display title from "Basic" to "Free"
  • Enable tax ID collection on Stripe checkout sessions
  • Gate token-pack purchases to paid plans only (Free plan no longer sees the option)
  • Add backend support for delegated Stripe checkout sessions and per-tenant billing exceptions (ADR-0055 foundation, not yet exposed in the UI)

osaas-maker v4.9.2

  • Fix maker job ERR_REQUIRE_ESM crash by bumping the job container's Node.js from 18 to 22

2026-09-21

osaas-app v8.12.0

  • Add Open Intercom welcome email for open-intercom signups

osaas-ai v8.8.0

  • create-service-instance now includes dependency health-check guidance in its description, so the agent warns about missing dependencies before attempting creation
  • get-service-api now probes /api-docs/json as an additional OpenAPI discovery path, improving compatibility with more service types

osaas-lib-orchestrator v4.11.0

  • Accept Sec-WebSocket-Protocol as a fourth credential source in /authenticate, enabling browser-based WebSocket clients to pass bearer tokens without custom headers

osaas-lib-orchestrator v4.10.0

  • Add per-instance memory cap via memoryMiB option on service orchestrators
  • Fix NodePort ledger entry release and retry writes on conflict (improves TCP port allocation reliability)
  • Add Access-Control-Allow-Credentials to CORS preflight ingress (fixes credential-including cross-origin requests)

2026-09-20

osaas-app v8.11.2

  • Add Open Live welcome email sent to users who sign up for Open Live
  • Fix loopback redirect URI comparison to be hostname-agnostic per RFC 8252 (fixes headless OAuth clients connecting from 127.0.0.1 vs localhost)

2026-09-19

osaas-app v8.11.1

  • Token pack purchase and display are now gated to paid plans (Personal, Professional, Business) — Free plan workspaces no longer see the Buy Token Pack option
  • Move the "To beta" channel switch from the instance badge area into the instance dropdown menu
  • Fix RFC 8252 loopback-port variance in OAuth authorize flow and tighten ephemeral client TTL
  • Move Enterprise section to a dedicated tab for Stripe-billed tenants

2026-09-18

osaas-app v8.11.0

  • Add favorite workspace pinning in the navigation dropdown — starred workspaces appear at the top of the workspace list
  • Preserve OAuth continuation state on sign-in error so the user is redirected back correctly after authenticating
  • Fix parsing of comma-separated redirect URIs in the OAuth app modal

osaas-ai v8.7.4

  • get-runtime-limits tool now covers My Jobs (python-job-runner) — query memory, CPU, max duration, concurrency policy, and cron timezone
  • Add create-workspace MCP tool for admin workspace provisioning
  • Storage credential provisioning now polls server-side for readiness before returning, reducing race conditions on fresh MinIO instances

osaas-deploy-manager v8.5.2

  • Custom domains now require the Professional plan (€69/mo) or higher — previously available on all paid plans
  • Invalid cron expressions in My Jobs now return a descriptive error message from the cron parser

osaas-landing-app v3.45.3

  • Sovereignty launch blog post published in all five locales
  • Privacy policy updated to disclose MCP audit logging and conversation storage
  • Pricing page updated: paid plans bill from day one (no trial period)

osaas-maker-manager v8.1.0

  • Add sync-metadata job status endpoint for the service build pipeline

2026-09-17

osaas-app v8.10.0

  • Fix OAuth sign-in regression that caused new workspace creation to fail for certain signup flows

osaas-ai v8.7.3

  • create-service-instance now returns a clear error when an instance with that hostname already exists, rather than a generic failure
  • create-backup and schedule-backup MCP tools now return a plan-limit error when the backup feature is not included in your current subscription
  • describe-service-instance now reports the running image tag (from deployedVersion) instead of the latest available tag
  • New osc_write_tool dispatcher separates write and destructive MCP operations from read-only calls; read-only MCP surfaces no longer expose tools that modify resources
  • My Apps runtime options now include Go and .NET — all five runtimes are supported: Node.js, Python, Go, .NET, and WebAssembly
  • create-database now defaults publicAccess to false — newly provisioned databases are private unless you explicitly request public access

osaas-deploy-manager v8.5.1

  • Rebuilding a My App now automatically rotates the runner refresh token, preventing service disruptions caused by 365-day token expiry

2026-09-16

osaas-app v8.8.0

  • Stripe checkout success and cancel URLs are now origin-validated against app.osaas.io, blocking open-redirect exploitation during plan purchase and workspace creation flows
  • Trial countdown banners now read trialEnd directly from billing instead of computing purchaseDate + 14 days, fixing incorrect billing dates for voucher-extended and admin-granted trials, and showing the banner for any plan type with a future trial end (not only PERSONAL/BUSINESS)
  • AI chat streaming rewritten to use ReadableStream.from(), eliminating a teardown crash that affected long chat sessions
  • Admin catalog detail page now returns a graceful 404 state for unpublished services instead of crashing to the error boundary
  • Home tab suggested services updated to Teleprompter, OGraf Editor, and OGraf Server; assistant CTA promoted above service cards based on click-through data

osaas-ai v8.7.0

  • AI assistant now proposes a deployment plan on ambiguous questions instead of auto-deploying, reducing unintended service creation
  • MCP initialize instructions are now tailored to the calling surface (operator vs. full MCP) for clearer tool guidance
  • get-service-schema, list-service-instances, describe-service-instance, delete-service-instance, and get-service-endpoints now return an INVALID_SERVICE_ID sentinel with a nextAction hint when the serviceId does not exist, instead of a generic error
  • restart-service-instance now verifies the instance still exists after the restart call, returning a clear error if the deployment was deleted rather than falsely reporting success

osaas-catalog-manager v8.2.0

  • Admin API now accepts ?includeUnpublished=true on GET /service/:serviceId, allowing internal tooling to read draft and unpublished services without receiving a 404

osaas-landing-app v3.44.0

  • Open Live example page added to the marketing site

osaas-money-manager v8.2.2

  • Scheduled plan changes now match by plan type instead of Stripe price ID, fixing incorrect upgrade/downgrade detection after a price update

2026-09-14

osaas-app v8.7.0

  • Agent Tasks table now shows a Credentials column with color-coded status for each task's OSC Access Token (Active/Expired) and Git Token (OK/Rotate Soon/Rotate Recommended), plus a mobile alert icon for tasks with credential issues
  • Token expiry warning banner now shows separate rows for expired tokens (red) and tokens expiring within 14 days (yellow), with per-row rotate links
  • OAuth Apps registration now includes a redirect URIs field
  • Instance settings modal shows the current release channel (normal or beta) as a chip when the image tag is known
  • Service browse pages now display token consumption (tokens/day), subscription fee (where applicable), and a "Ready to deploy with just a name" indicator for single-option services

osaas-ai v8.6.0

  • MCP operator surface (/mcp/operator) now returns focused initialize instructions matching its narrowed tool set (osc_search_tools, osc_call_tool, ask-osc-architect) rather than the full 180+ tool context

osaas-catalog-manager v8.1.0

  • SVT Encore service instances now expose ENCORE_PROFILES_URL as a configurable option in the catalog schema

osaas-deploy-manager v8.4.0

  • New POST /myinstances/:serviceId/:instanceName/restart endpoint for programmatic restart of individual service instances

osaas-landing-app v3.43.1

  • SEO fix: removed broken service links from use-case pages that pointed to non-existent catalog entries
  • Accessibility fix: standalone link CTAs now meet WCAG 2.2 AA 24px minimum touch target
  • Pricing page updated to remove an inaccurate "every tier includes every feature" claim
  • i18n parity check now correctly excludes locale-specific contact keys

2026-09-13

osaas-landing-app v3.43.0

  • Updated pricing page prose to clarify custom domain availability per tier
  • Expanded MCP acronym in marketing copy and added section heading over the three-doors use-case navigation block

2026-09-12

osaas-landing-app v3.41.2

  • Next.js 14 upgraded to 15 to patch CVE-2026-23864

2026-09-11

osaas-landing-app v3.41.1

  • Add missing-piece build series landing page

2026-09-10

osaas-app v8.5.1

  • OAuth redirect_uri validation errors now include detailed messages describing exactly why the URI was rejected

osaas-ai v8.5.1

  • Service instance configuration errors now include the service schema inline, showing required and optional fields without a separate tool call
  • MCP server now returns a 400 with a migration hint when the retired ?essentials=1 parameter is used; unknown ?filter= values also return 400 instead of silently returning wrong results
  • get-mcp-help tool descriptions updated to reflect current surface and category layout
  • Job-type services (which run on-demand and terminate) are now correctly excluded from instance listing and deletion; attempting to delete a job-type service instance returns a descriptive error

osaas-deploy-manager v8.3.0

  • Agent Tasks now track which git credential each task is bound to, enabling list-git-credentials to show boundAgentTasks relationships

osaas-landing-app v3.41.0

  • Live chat support widget added to the marketing site
  • Homepage hero section updated with agent-first messaging and use-case navigation

2026-09-08

osaas-app v8.5.0

  • OAuth client registration now accepts loopback redirect URIs (http://localhost, http://127.0.0.1, http://[::1]) per RFC 8252 §7.3, enabling native desktop and CLI app OAuth flows
  • Low-token digest now calculates net daily drain correctly by accounting for token refill in the denominator
  • Analytics provisioning is now non-blocking: analytics setup no longer delays app creation

osaas-ai v8.4.0

  • list-git-credentials now shows which Agent Tasks are bound to each credential (boundAgentTasks), alongside the existing boundApps field
  • create-agent-task and update-agent-task now validate that the specified gitCredential exists before creating or updating the task, returning an immediate error with the list of available credential names
  • Reserved site names (www, app, api, and others) are now blocked when creating a My Page via MCP
  • setup-parameter-store now warns when you attempt to share a single Valkey instance between multiple parameter stores
  • Parameter store tools now surface server errors gracefully instead of crashing on unexpected HTML or 5xx responses
  • Service dependency probes now correctly resolve {{secrets.X}} references in database and SMB URLs before connectivity checks

osaas-deploy-manager v8.2.1

  • Reserved site names are now blocked at API level when creating My Pages
  • HA standby cleanup now runs on both clusters when HA is disabled

osaas-maker-manager v8.0.1

  • Unknown query parameters in GET /maker are now rejected with a 400 error instead of being silently ignored

2026-09-07

osaas-app v8.4.0

  • Token Consumption card label updated to reflect lifetime semantics (total tokens used since account creation, not a rolling window)
  • Service instance name input now enforces a 20-character maximum
  • OAuth redirect URIs now accept custom URI schemes (e.g. myapp://callback) per RFC 8252, enabling native app OAuth flows
  • Cancelled PayPal plans no longer disappear from the Subscriptions tab and receipts list
  • Suspended apps list now refreshes automatically on browser tab focus; resuming an app removes it from the Suspended list immediately without a manual reload
  • AI chat streaming rewritten as an async generator, eliminating a persistent ReadableStream teardown crash in long chat sessions

osaas-ai v8.3.0

  • get-mcp-help now derives its category list from the live tool registry and includes pagination context, improving accuracy of help responses for MCP clients

osaas-deploy-manager v8.2.0

  • Stage/Prod pipeline provisioning now uses a platform-internal token instead of requiring the tenant's Agent Tasks credentials — enabling Stage/Prod on any paid-plan app even if Agent Tasks has never been configured
  • HA disable now cleans up the standby instance on both clusters, preventing ghost secondaries from a prior cross-cluster migration

2026-09-04

osaas-app v8.3.0

  • Agent Connector page now uses a modal picker: clicking a row in the compact list opens a full connection details modal instead of an expanded inline card
  • Workspace switcher retains the last explicitly selected tenant across page navigations
  • My Apps Release to Prod button now shows a disabled state with an explanatory tooltip when the current build status prevents a production release
  • Service instance status card shows "Restarting" throughout the full 30-second pod teardown window, preventing a premature flip to "Running" during restarts

osaas-deploy-manager v8.1.0

  • Gitea API token creation now retries on 404 before triggering a full instance rebuild, reducing unnecessary rebuilds caused by transient Gitea startup delays

2026-09-03

osaas-app v8.2.0

  • My Pages now has a web console UI for HTTP Basic Auth: set a username and password from the site detail view, with eye toggle to reveal the password before saving
  • Custom domain and wildcard domain types are now available to Basic plan users in the Create Domain and Update Domain modals
  • Agent Connector page replaced the expanded card grid with a compact list; clicking a row opens a modal with full connection details
  • Parameter inputs in the Manage Parameters modal now have an eye toggle to show or hide the value, and the layout is responsive on mobile

osaas-ai v8.2.0

  • publish-static-site is deprecated; use My Pages tools (create-my-page, upload-my-page-files, publish-my-page) instead
  • upload-my-page-files-from-url now guards against SSRF by blocking requests to internal network addresses
  • systemCanGenerate fields in service schemas are no longer flagged as missing required fields when creating instances
  • list-published-skill and get-published-skill now handle network errors gracefully
  • Improved accuracy for app readiness checks, HA mode detection, token savings estimates, and orphan diagnosis
  • call-service-endpoint no longer false-positives on opaque handles with high-entropy substrings

osaas-deploy-manager v8.0.1

  • My Pages directory URLs (e.g. /docs/) now resolve to docs/index.html without a redirect
  • Non-secure parameter store responses now include the instance URL

2026-09-02

osaas-app v8.0.2

  • My Pages list now shows a Manage icon (arrow-out-of-box) on each site row, opening the site detail view
  • Exceeded-token notification email now accurately reflects limits for paid tenants

osaas-ai v8.1.0

  • New set-my-page-auth MCP tool: enable HTTP Basic Auth on a My Pages static site (username + password, stored as htpasswd hash)
  • New remove-my-page-auth MCP tool: disable HTTP Basic Auth on a My Pages static site
  • get-my-page now returns authEnabled and authUsername fields when a page is password-protected
  • create-service-instance response no longer crashes when the orchestrator omits the instance URL

2026-09-01

osaas-app v7.111.0

  • Param store Manage button is only enabled after the server confirms the parameter store is ready, preventing premature access to an uninitialized store
  • Service instances for services not yet migrated to Elastx are now fetched from their original per-service orchestrator, keeping the dashboard accurate during the migration window

2026-08-31

osaas-app v7.109.0

  • My Pages is now a top-level navigation entry — create and manage static sites at *.pages.osaas.io directly from the dashboard sidebar
  • Skills visibility control: choose Draft, Published, or Unlisted when contributing a new skill; toggle between states from the skill card at any time
  • Re-upload files to an existing My Page site without recreating it (Update flow with manifest-diff prune)
  • Published skills feed now covers the full catalog with additional metadata fields

osaas-ai v7.89.0

  • New MCP tools for My Pages: list-my-pages, get-my-page, create-my-page, upload-my-page-files, publish-my-page, delete-my-page
  • list-agent-tasks, list-my-domains, and list-backups now support limit and hasMore pagination
  • New nudge-feedback MCP tool to remind the team of pending unreviewed feedback items
  • list-my-apps supports a new includeHealth flag for fleet-level app health monitoring

@osaas/cli v4.33.1

  • osc web publish <name> <dir> now publishes directly to My Pages instead of provisioning a MinIO bucket. This is a breaking change: the previous -s flag and bucket/CDN output are gone, and osc web cdn-create can no longer be chained after web publish. Custom domains/CDN in front of a My Pages site are not yet supported.

2026-08-28

osaas-app v7.108.0

  • Subscription status checks now account for instances running on both clusters, preventing false stale-subscription detections for multi-cluster workspaces

2026-08-26

osaas-app v7.106.1

  • Auth rejection errors in the secrets panel are now handled gracefully instead of crashing the page
  • Service detail pages no longer show a false "not found" state when the service token check fails

osaas-ai v7.88.0

  • New MCP admin tools: admin-list-subscriptions and admin-get-tenant-plan for workspace subscription and plan inspection via AI agents

osaas-deploy-manager v7.92.0

  • New mail delivery status endpoint — check whether a workspace mail server has sent messages successfully via GET /mymail/delivery-status

osaas-money-manager v7.16.0

  • Token consumption rates are now snapshotted at the time of use, preventing retroactive price changes from affecting already-incurred charges

2026-08-25

osaas-app v7.106.0

  • Rate limit errors in the service catalog and transactions UI no longer crash the page — handled gracefully with inline feedback
  • Service detail pages now handle token errors without showing a false "not found" state

osaas-ai v7.87.0

  • AI assistant now enforces CouchDB database isolation for Intercom: reusing the same host and database path across multiple instances is rejected with corrective guidance
  • Service secrets can no longer be set to literal {{secrets.X}} template strings — the AI rejects these before sending to the platform
  • Before creating a service instance, the AI now validates that the URL scheme (https, rtmp, etc.) matches what the service expects
  • After a multi-step setup failure, the AI now offers to clean up any orphaned instances created before the failure
  • Developers calling the OSC chat API directly can enable MCP tool access by omitting ?disableMcp=true and including a valid x-pat-jwt header

osaas-deploy-manager v7.91.2

  • Private database instances now correctly restore their public-access setting when resumed from a suspended state

2026-08-24

osaas-app v7.105.0

  • AI assistant conversation history panel: browse past conversations and resume any of them directly from the chat card
  • Resume AI chat from last saved conversation on page load

osaas-deploy-manager v7.91.0

  • Stage/prod pipeline can now be enabled for GitHub-hosted apps that have no stored git token
  • Resolve db-backuper Job cluster by detecting its own domain

2026-08-23

osaas-ai v7.86.0

  • Add MCP tools for static site publishing (publish-static-site, upload-object-to-bucket, set-storage-bucket-public)
  • Remove Agentic SDLC precondition from Stage/Prod MCP tools — enable-app-stage-prod now requires only a paid plan
  • After 3 consecutive "starting" status checks, AI agent automatically escalates to fetching instance logs
  • OSC URL wiring gate now skips already-declared service associations and supports session-level confirmation for cross-service wiring

osaas-deploy-manager v7.90.0

  • Stage/prod versions endpoint now returns GitHub tags for GitHub-hosted My Apps
  • Custom domain responses now include TLS certificate status for secondary cluster
  • Stage/Prod pipeline provisioning and release handlers are now deterministic under concurrent requests
  • Drop Agentic SDLC precondition for stage/prod activation — paid plan is the only gate

2026-08-22

osaas-app v7.103.0

  • Day-0 activation emails now include a runway warning for at-risk tenants

osaas-landing-app v3.32.1

  • Pricing calculator plan allotments and recommendation thresholds updated

2026-08-20

osaas-app v7.102.2

  • The Solutions page now shows a loading indicator while Recent Deployments is fetching on initial page load
  • Server errors during page refresh after a deployment are now handled gracefully — the page no longer crashes on transient errors
  • Member users are now redirected away from Workspace Settings instead of seeing an error
  • Activation emails now show raw event counts for each instrumented branch — makes metric-based activation signals clearer

osaas-ai v7.82.0

  • After setting up a parameter store, the AI agent now proactively guides users to bind it securely to their custom app via configService and configApiKey — prevents credentials from being pasted into chat messages where they would be stored in conversation history
  • The AI now gives clear guidance when a requested capability is not accessible via MCP (e.g. features that require the OSC web console)
  • The AI can now answer "what was recently deployed?" and similar recency questions by querying the indexed Platform Changelog — responses are sourced from live data instead of training knowledge
  • For video ingest, transcode, and streaming use cases the AI now recommends Open Videocore as the first option before suggesting lower-level components

osaas-deploy-manager v7.89.0

  • Backup credentials (PATs) are now automatically renewed when they are within 14 days of expiry — scheduled backup runs no longer fail silently when the authentication token ages out
  • Backup policies now expose a credentialStatus field (ok / expired / renewed) showing PAT credential health — visible via the list-backup-schedules MCP tool and the My Backups dashboard
  • Backup scheduler flags now default to enabled on startup — scheduled backup jobs that were silently not running after a restart will now run correctly

2026-08-17

osaas-app v7.102.0

  • Agent task setup calls now automatically retry on transient TCP-level connection failures — the My Agent Tasks feature is more resilient on brief network hiccups
  • Multi-tenant users are now automatically directed to the correct workspace when a Service Access Token expires — eliminates the manual workspace selection step after re-authentication
  • The OSC console now sends session keep-alive pings and shows a session-expired banner when the session ends — prevents silent failures on long-running dashboard pages
  • The Configure Service modal now exposes a UDP Gateways field for services that require UDP endpoint configuration

osaas-ai v7.81.0

  • CouchDB connection errors now show actionable recovery steps instead of opaque technical messages — helps users and AI agents diagnose and recover from CouchDB instance issues faster
  • MCP instructions now include guidance on Service-to-Service integration using Service Access Token (SAT) exchange for My Apps — makes it easier for AI agents to set up secure inter-service calls

2026-08-16

osaas-app v7.101.2

  • App configuration updates now surface specific error messages when the container is in a failed state (CrashLoopBackOff, OOMKilled, image pull failures) — previously these returned a generic error

osaas-ai v7.80.0

  • Rolling restarts now return a partial-success response when some instances restart and others fail, instead of treating the whole operation as a failure
  • create-service-instance now rejects attempts to override OSC-owned URL fields (such as base URLs for managed services) — prevents misconfiguration
  • New find-parameter-key MCP tool searches across all parameter stores in a workspace to locate a key by name — useful when you do not know which store holds a given config value
  • Instance naming constraints (alphanumeric only, max 20 characters) are now included in get-service-schema responses — AI agents receive the constraint upfront so they can prompt for a valid name before creation

osaas-deploy-manager v7.87.1

  • Proxy creation no longer duplicates mirror records when a background task wins a race condition
  • Partial-success 500 responses now include the configApiKey field — the API key is available even when the instance creation partially succeeded
  • Locality predicate for proxy operations now uses real geo-routing data

osaas-landing-app v3.31.4

  • Team diary date pages are excluded from search indexing and the sitemap — reduces SEO noise from machine-generated content

2026-08-15

osaas-ai v7.79.1

  • wait-for-app-ready now times out after 50 seconds instead of 120 seconds — agents receive faster feedback when an app does not become ready in time
  • MCP tool search now supports multi-word queries — searching for "hls monitor" or "media probe" returns relevant results instead of requiring a single keyword

2026-08-14

osaas-app v7.101.1

  • Parameter store API key reveal now includes a download button that saves the key as a .env file — useful as a backup before closing the modal
  • The Done button on the key reveal dialog stays disabled until you check "I have saved this key securely" — prevents accidentally closing before saving the key
  • Same download and acknowledgment flow applies to the credential regeneration modal
  • Remove stale service count copy from the OSC landing welcome text

osaas-ai v7.79.0

  • create-agent-task now accepts scheduleType: "manual" to create on-demand tasks that never fire automatically — trigger them with run-agent-task whenever you want
  • New acknowledge-secret-saved MCP tool creates an audit log entry after a human confirms they have downloaded and saved a parameter store CONFIG_API_KEY from its one-time download link

osaas-landing-app v3.31.3

  • Update hero subtitle and portability section title copy

2026-08-13

osaas-app v7.100.0

  • Long prompts on skill detail pages now wrap correctly instead of overflowing
  • Screenshots are now displayed on community skill cards in the skills index

osaas-ai v7.78.0

  • Skill display names are now projected into the title field on public skill routes — improves search indexing for skills with custom display names

osaas-deploy-manager v7.85.0

  • When binding a Umami analytics instance to an existing app, the platform now automatically registers the app URL as a website in Umami and returns the tracking script in the response — no manual Umami setup required
  • Skills now support an optional displayName field in the schema — set a human-readable title without changing the skill identifier

2026-08-12

osaas-app v7.99.0

  • HTTP 429 rate-limit errors now surface a user-friendly message instead of a technical error code

osaas-ai v7.77.0

  • MCP tools now reject requests with unknown query parameters — previously unknown fields were silently stripped, which could mask typos in tool arguments
  • get-logs-for-instance now redirects automatically to get-my-job when called with a MyJob serviceId, returning the correct log format without manual intervention

2026-08-11

osaas-app v7.98.1

  • Token usage chip now shows a danger state when the daily consumption rate exceeds the daily refill rate — prevents silent budget exhaustion
  • Parameter store tab links now use correct URL encoding for tab names with spaces

osaas-ai v7.76.0

  • list-community-skills now queries the live community catalog — supports query, type, tags, and limit filters; previously returned a placeholder message
  • import-community-skill new tool — copies a community skill from another tenant into your own workspace; the forkedFrom field in the result records the origin
  • All appId-based MCP tools (get-my-app, restart-my-app, diagnose-my-app, etc.) now return a structured error with recovery hints when the app is not found, instead of a generic failure

osaas-catalog-manager v7.4.0

  • Community skills index added: a cross-tenant PublishedSkill collection and API enables browsing skills from all OSC workspaces in one place — powers the /skills public index page and list-community-skills MCP tool

osaas-deploy-manager v7.83.0

  • Skill publish, update, and delete operations now write through to the community catalog index immediately — the /skills public index page and MCP tool reflect changes without a reindex delay

osaas-landing-app v3.31.1

  • Attribution cookie removed — referral tracking now uses URL-passthrough only, removing a stale cookie that was occasionally causing checkout errors for returning visitors

osaas-money-manager v7.14.4

  • Token count queries now default to today's UTC midnight as the start time when no start date is specified — fixes incorrect zero-count readings during the first hours of the day
  • Subscription cancellations now update purchase status to CANCELLED immediately — prevents stale ACTIVE status on cancelled subscriptions

2026-08-10

osaas-app v7.98.0

  • Published skill pages now support screenshot uploads — images are rendered on the public skill page alongside the description
  • Public skill pages now include a copy-prompt button and a direct MCP connect link for one-click onboarding

osaas-ai v7.75.1

  • diagnose-my-app now shows unfiltered startup logs for apps in non-running states (building, failed) instead of error-only logs — makes it much easier to diagnose startup crashes where all output is INFO-level
  • get-my-app-logs detects git credential failures (HTTP 403, authentication errors, and TTY-style "No such device or address" errors) and emits a structured advisory pointing to list-git-credentials and the 30-day GitHub PAT expiry
  • list-git-credentials now reports credential age in days and flags credentials within 5 days of the 30-day GitHub PAT default expiry (HIGH risk) or within 10 days (MEDIUM risk)
  • wait-for-app-ready now correctly distinguishes a newly-started app from a restarted one — prevents false "ready" reports when the old pod is still running immediately after a restart is triggered

osaas-deploy-manager v7.82.0

  • Skill API and metadata now support an optional screenshotUrl field, enabling screenshot display on public skill pages

2026-08-08

osaas-app v7.97.1

  • Fix: PKCE OAuth clients that strictly validate code_challenge_methods_supported can now authenticate — plain has been removed from the supported methods list to comply with the PKCE spec

osaas-ai v7.75.0

  • list-available-services now includes a status: "COMPLETE CATALOG" sentinel in category-filtered responses so AI agents reliably stop re-scanning after receiving the full result set
  • getApp now times out after 5 seconds instead of hanging for up to 13 seconds when an app is not found, giving agents faster failure feedback
  • openWorldHint annotations corrected on 8 tools that were incorrectly marked as able to access the open web — MCP clients receive accurate tool metadata

osaas-deploy-manager v7.81.3

  • My Apps in a REBUILD_CREATE_FAILED tombstone state now return a 409 with an explicit recovery message on plain restart attempts — covers an additional failure state beyond the case handled in v7.81.2

2026-08-06

osaas-app v7.97.0

  • Public skill share pages are now indexed by search engines and social media crawlers — skills can be discovered via Google and Bing
  • FREE plan tenants now see a token budget chip on the dashboard showing their remaining token balance as a percentage

osaas-ai v7.74.1

  • MCP server now correctly negotiates protocol version during the initialize handshake, resolving connection failures with strict MCP clients
  • MCP capability advertisement trimmed to only implemented capabilities — clients no longer receive capability claims the server cannot fulfill
  • resources/templates/list handler added per MCP spec, returning an empty array; previously caused JSON-RPC errors on clients that call it
  • Cursor-based pagination is now explicitly rejected with an error instead of silently ignored, giving callers actionable feedback
  • MCP tool errors (Zod validation, auth failures) now return structured isError tool results instead of throwing — prevents clients from treating validation errors as transport failures
  • Audit stats API now accepts a tenantId query parameter to scope aggregation to a single tenant; all MCP tool calls are now tagged with source: mcp in audit metadata

osaas-deploy-manager v7.81.2

  • My Apps stuck in a failed rebuild state now return a 409 error on restart with the message "App is in a failed rebuild state. Use ?rebuild=true to recover, or DELETE the app and recreate it." — previously the restart would silently fail
  • PAT validity is now checked before any destructive rebuild operation begins, preventing failed rebuilds due to expired tokens before a single resource is changed

2026-08-05

osaas-deploy-manager v7.81.1

  • Fix: backup scheduler now re-mints a non-expiring PAT when a backup policy is enabled, ensuring scheduled backups continue running without token expiry failures

2026-08-04

osaas-app v7.96.0

  • Builders dashboard empty states now include direct action buttons — "Submit a Service" navigates to the Service Inbox tab, "Contribute a Skill" opens the contribution modal directly

web-runner (container image)

  • Default Node.js version for My Apps deployed on the Web Runner (eyevinn-web-runner) bumped from Node 22 to Node 24
  • Apps can now request a different Node.js major via engines.node in package.json (18, 20, or 22 are also available; other values fall back to the default)
  • Apps can now opt in to pnpm or yarn via a Corepack packageManager field in package.json, instead of always using npm
  • Apps without either field are unaffected apart from now running on Node 24 instead of Node 22
  • See Eyevinn/web-runner#50

2026-08-03

osaas-ai v7.74.0

  • Add compare-services MCP tool — evaluate multiple services side-by-side to find the best fit for a use case without calling get-service-schema separately for each
  • Restart advisory threshold lowered to two consecutive health-check failures and now returns a structured advisory object — agents receive actionable restart guidance sooner
  • wait-for-app-ready tool now polls internally until the app is ready, eliminating the need for callers to build their own polling loops
  • Fix: AI assistant now correctly advises that NEXT_PUBLIC_* variables set in the parameter store are available in client-side code — OSC injects them before the build runs
  • Fix: AI assistant sessions with MCP disabled now exit gracefully when repeatedly blocked by verification prompts instead of looping indefinitely

2026-07-31

osaas-app v7.94.0

  • Logged-in users can now view public skill pages — previously they were redirected to the Builders dashboard instead of seeing the shared skill
  • Published skills now render dynamic Open Graph preview images on social media share links
  • Public skill pages now display a git clone URL section with the anonymous HTTPS clone URL for the skill's Gitea repository
  • Fix: My Apps now shows a clear error state when a bound parameter store has been deleted, instead of silently failing to load configuration
  • Fix: Token Usage bar now correctly resets its daily tracking window at midnight

osaas-ai v7.73.0

  • Public skill share URLs now route through the deploy-manager JSON endpoint — skill pages load reliably for all clients including headless tools
  • Fix get-published-skill MCP tool to return structured skill content instead of HTML — wraps JSON parsing in a try/catch for graceful error handling

osaas-deploy-manager v7.78.0

  • Published skills now retain their original type (skill/prompt/runbook) and license after creation — previously metadata fell back to defaults after the initial Gitea write
  • Skills list supports pagination — tenants with large skill libraries load reliably without truncation

osaas-money-manager v7.14.3

  • Token runway estimate ("days until zero") now uses cumulative lifetime consumption instead of today's usage rate, giving a more accurate long-term projection for steady-state accounts

2026-07-28

osaas-app v7.93.0

  • Public skill pages now include Open Graph meta tags and social share buttons (LinkedIn, X, Bluesky, copy link) — share directly from the skill detail page or the Builders dashboard card
  • Builders tab switching on desktop is now reliable — the tab URL parameter is correctly propagated through the tab container
  • Token budget warning banner and Usage page now draw from the same projected runway calculation for consistent figures

osaas-ai v7.72.0

  • AI chat sessions now self-repair when a user asks the same question a second time — the assistant acknowledges the prior answer, identifies what changed, and asks a clarifying question instead of repeating verbatim
  • Fix get-published-skill MCP tool to correctly fetch skill content — previously pointed at the HTML share page instead of the deploy-manager JSON endpoint

osaas-deploy-manager v7.77.0

  • Parameter store provisioning is now idempotent — retrying a failed store creation no longer results in a conflict error
  • Public skills share URL now links to the skill detail page on app.osaas.io instead of the internal API endpoint
  • Skills listing loads faster — Gitea session results are cached per tenant for 5 minutes, reducing repeated authentication overhead on the Builders dashboard

2026-07-25

osaas-app v7.92.1

  • Fix token budget warning — the Low Token banner and Usage page now use the same projected runway calculation

osaas-ai v7.71.0

  • Published skills can now be previewed without authentication via GET /skills/{tenantId}/{skillName} on the AI API — useful for embedding skill metadata in external tools and dashboards
  • Add update-published-skill MCP tool — update the content of an existing published skill, prompt, or runbook without deleting and recreating it
  • Add delete-published-skill MCP tool — permanently delete a published skill, prompt, or runbook from your workspace

osaas-deploy-manager v7.76.0

  • Manual My Job runs now update lastRunStatus once the job completes, matching the behavior of scheduled runs
  • Skill deletion is now backed by an API endpoint — enables the delete-published-skill MCP tool to remove the underlying Gitea repository

2026-07-24

osaas-app v7.92.0

  • Fix stale sidebar menu item permissions after workspace switch
  • Send proactive low-balance email before account token balance reaches zero
  • Token balance warning now based on overall runway rather than today's consumption ratio
  • Workspace secrets are now selectable as OSC access token source when creating agent tasks

osaas-ai v7.70.0

  • Add useLatest parameter to create-service-instance MCP tool — deploy the newest available image version without specifying an exact tag
  • Parameter tool descriptions now remind users to call list-parameter-stores first to get the correct store name
  • estimate-service-cost now includes a disclaimer distinguishing nominal (list price) from observed (actual billed) cost

osaas-deploy-manager v7.75.0

  • MyJob manual trigger (POST /myjobs/{name}/run) now updates lastRunStatus once the run completes, matching scheduled-run behavior
  • Block Agentic SDLC auto-merge when a CRITICAL security finding is open — blocked PRs receive a comment explaining the gate
  • More reliable Gitea code pushes — 422 errors on file-push now retry up to 3 times before failing

2026-07-23

osaas-app v7.91.0

  • Add edit job modal — scheduled My Jobs can now be updated in place (cron schedule, source URL, worker command, parameter store binding) from the web console without deleting and recreating the job

osaas-ai v7.69.0

  • Add git clone 403 credential-flow guardrail to diagnose-my-app — the assistant now automatically detects authentication failures on private repos and walks through the credential registration and linking steps
  • Surface credential-to-app mapping in list-my-apps and list-git-credentials — each app shows its bound git credential name; each credential shows which apps are using it

osaas-deploy-manager v7.74.4

  • Generate non-expiring scheduler PAT for MyJob runs — previously short-lived tokens caused auth expiry on long-running or delayed job executions
  • Store MyJobs credentials as K8s service secrets with Elastx fan-out — jobs running on Elastx now reliably receive their OscAccessToken and ConfigApiKey at trigger time

2026-07-21

osaas-app v7.90.3

  • Fan out PAT expiry reminders to all sub-workspace admins — workspace members with admin role now receive personal access token expiry warnings, not just the primary account holder

osaas-ai v7.68.0

  • Bump hono transitive dep to resolve HIGH severity CVE (GHSA-88fw-hqm2-52qc) — security patch with no user-facing behavior change

osaas-money-manager v7.14.1

  • Guard token refill against past_due/unpaid Stripe subscriptions — token top-up requests on accounts with lapsed billing now return a clear error instead of silently failing

2026-07-19

osaas-ai v7.67.2

  • Fix CouchDB connection URL handling in client libraries — Intercom Manager wiring with CouchDB now resolves database URLs correctly

osaas-deploy-manager v7.74.2

  • Fan out GET /admin/myapps to Elastx secondary cluster — the admin MyApps listing now aggregates results from both Linode and Elastx, giving a complete view of all tenant custom apps across clusters

2026-07-18

osaas-app v7.90.1

  • Reduce Skills service fetch timeout to prevent 30 s server-action-failed errors — the Skills list now returns a clear timeout message instead of an opaque failure when the deploy-manager is slow

osaas-ai v7.67.1

  • Translate ContainerCreating phase to success in update-my-app-config — agents receive a restart_in_progress status with a prompt to call wait-for-app-ready instead of an ambiguous error during rolling restarts

2026-07-17

osaas-app v7.90.0

  • Add workspace secrets to agent task OSC access token selector — workspace secrets stored in your account are now selectable as a reference option alongside runner service secrets when creating agent tasks
  • Return RFC 6749 503 on money-manager timeout in /api/connect/token — headless OAuth clients now receive a proper structured error response on timeout

osaas-ai v7.67.0

  • Include diagnostic snapshot on wait-for-app-ready timeout — timeout responses now include pod health status and HTTP probe results to help diagnose why an app did not become ready
  • Return structured not_found envelope on restart-my-app 404 — clients get a clear terminal error instead of a generic failure when the app does not exist

osaas-deploy-manager v7.74.1

  • Pin SDLC bootstrap source ref to commit SHA to survive branch deletion — Agentic SDLC setups no longer break when the source branch used during setup is later deleted

2026-07-15

osaas-ai v7.66.0

  • Enforce 20-character max length on service instance names — names exceeding the limit return a clear error with guidance to choose a shorter name
  • Mask parameter values and connection-string passwords in MCP tool results — credential values are redacted before being returned to the AI client
  • Change get-security-report default format from summary to detailed — reports now include full finding details without requiring an explicit format argument
  • Return restart_in_progress status on transient ContainerCreating phase — agents now get a clear non-terminal status instead of an ambiguous error during rolling restarts
  • Pre-flight source ref check in enable-agentic-sdlc — validates that the specified branch exists before attempting to enable Agentic SDLC
  • Respond to "what's new" and changelog queries with live app health state via list-my-apps

osaas-deploy-manager v7.74.0

  • Fix My Jobs scheduler to resolve correct job status — jobs no longer show "unknown" status after running
  • Add enableSecrets flag to parameter store creation — parameter stores can now be created with encryption enabled from the start

osaas-app v7.89.1

  • Fix stream abort race condition in AI chat — improves reliability when multiple AI responses are in flight simultaneously
  • Store PAT identifier instead of raw token in conversation history — reduces credential exposure in stored sessions

2026-07-13

osaas-app v7.89.0

  • Remove OSC_CONNECT_CLIENT_SECRET startup warning — eliminates a noisy log entry on startup for environments where the OAuth client secret has not been customised