Changelog

Stripe SDK drift protection

Added a CI guard that fails the build when Stripe SDK apiVersion literals drift from the installed package. Prevents accidental upgrades across the portfolio.

Code quality cleanup

Cleared 26 lint warnings across 14 files. Eslint flat config now honors `_`-prefix for unused vars; fixed react-hooks set-state-in-effect violations; removed dead imports.

pnpm package manager migration

Switched from npm to pnpm@10.34.3 for faster installs, strict peer-dep resolution, and workspace support across the monorepo.

Service-factory split

Refactored the monolithic service-factory into dedicated service-* packages. Scaffolded packages/api, packages/db, and packages/shared for clean cross-app reuse.

Analytics API on Drizzle

Migrated analytics-api from Supabase REST to Drizzle/postgres-js. Repository methods now type-check against the 22-table schema directly; no more `as unknown` casts or manual SQL.

Multi-provider resource sync

Connect AWS, GCP, Azure, and Vercel accounts. Resources sync automatically with encrypted credential storage.

Automated runbooks

Create multi-step incident response runbooks triggered by alert conditions. Supports API calls, notifications, and data collection steps.

Cost intelligence dashboard

Track cloud spend across providers with daily cost snapshots, per-service breakdowns, and threshold alerts.

Webhooks API

Configure webhook endpoints for real-time event delivery. Verified payloads with HMAC-SHA256 signatures.

DNS zone management

Manage DNS zones and records directly from CloudInfraOS. Supports A, AAAA, CNAME, MX, TXT, and NS record types.

Organization and team support

Invite team members to your organization with role-based access control. Manage permissions per project.

Public beta launch

CloudInfraOS is now available in public beta. Free tier includes 1 project and 3 provider connections.