platform: v0.32.0
0.32.0 (2026-08-04)
Features
- ai: add production playground and run traces (ced609b)
- ai: add workspace AI Studio and legal coverage (6de4e39)
- ai: decouple observability from key approval (c1d96e1)
- ai: deepen studio observability (c7104c4)
- ai: enforce external app usage policy (e229116)
- ai: rebuild AI Studio information architecture and UI (c433d70)
- ai: show relative activity timestamps (9ca57f1)
- ai: support keyless external TTS (8ebfeae)
- apps: add resilient error recovery shells (f0f514d)
- apps: unify and redesign app catalog (b679068)
- auth: offer Microsoft sign-in again (fe981ee)
- calendar: redesign workspace sidebar (194e126)
- chat: add connected site sync bridge (05c27f5)
- chat: add connected site sync bridge (#5078) (3de1a07)
- chat: add first bridge pairing flow (78d0ccf)
- chat: add single-use bridge pairing tickets (0496bb6)
- chat: mirror Zalo history media to Drive (b8b5d7b)
- cms: add relation bundles and managed assets (fe5ef8a)
- cms: add relation bundles and managed assets (#4990) (3148aa6)
- cms: redesign content library controls (220ee96)
- cms: redesign media library loading (d382b3b)
- cms: redesign workspace home (cd727b8)
- cms: safeguard entry publishing workflow (2371b08)
- cms: support Richfield external project forms (befa92f)
- contacts: refine report review experience (0dd3247)
- editor: add heading hierarchy controls (714db4c)
- editor: add icon toolbar tooltips (6b3f1b8)
- editor: add icon toolbar tooltips (#5034) (7e687b1)
- editor: add localized external project editing (38cae2c)
- editor: add preview mode (49611c4)
- editor: add safe HTML source mode (78c5057)
- editor: add safe HTML source mode (#5075) (ccf130f)
- external-projects: let a linked app apply its own schema sync (4bcb90a)
- external-projects: let a linked app install its own content model (cf0d668)
- external-projects: list form submissions for scheduled forwarding (d0ca353)
- external-projects: send mail via SES and gate forms with Turnstile (0fe6851)
- finance: reconcile inventory provider sales (56650e0)
- forms: merge satellite migration (e739f1b)
- forms: migrate product to satellite app (51b9392)
- git: add fast repository satellite (51982ae)
- git: refine repository browsing (106fcc6)
- infrastructure: add platform account recovery (8a0c757)
- infrastructure: improve AI policy workspace explorer (2eae218)
- infrastructure: improve internal account management (fa4e535)
- infrastructure: manage internal accounts (02fd9f3)
- inventory: add analytics and storefront setup (82503f2)
- inventory: add bulk sales period controls (8140a46)
- inventory: add guarded bulk stock management (3516913)
- inventory: add POS device management (822a171)
- inventory: add responsive catalog workflows (f81815f)
- inventory: add sales periods and mobile commerce (fa442c9)
- inventory: allocate bundle revenue and add cash checkout (bd465f9)
- inventory: export sales periods (00e6a04)
- inventory: guide Square POS launch (74e0a3a)
- inventory: improve sales discovery and cart (cced561)
- inventory: improve sales exports (1c27668)
- inventory: improve search sales and analytics (9af9256)
- inventory: keep sale entry open (cba815d)
- inventory: optimize mobile sales workflow (1ee5f6b)
- inventory: revamp payments control center (0f3d220)
- inventory: secure Square POS event checkout (532b463)
- inventory: streamline sales entry (ae22db5)
- inventory: support cent-level Square prices (146f90f)
- inventory: support Square POS app payments (2cd087e)
- inventory: unify commerce currency and sales periods (2042bc5)
- inventory: unify promotions and referrals (ea9b3be)
- landing: drop the hero badge and rebuild the product frame (b3259df)
- landing: retile the app bento and rebuild the problem section (c56f42a)
- marketing: rebuild security, partners, careers, blog and contributors (98515d7)
- marketing: rebuild the legal kit, security subpages and docs chrome (9a4cfaa)
- meet: add Google-Meet-style calls on Cloudflare Realtime SFU (a32dd52)
- meet: drop the /workspace prefix and move rooms to /r (9e370e9)
- meet: revamp collaborative scheduling (9124a5d)
- mobile: revamp app lock experience (22b300b)
- navigation: open workspace selector on reveal (c760d42)
- offline: own service worker runtime and refresh dependencies (ae44477)
- onboarding: connect product guidance across apps (68cf626)
- reports: add periodic reporting automation (ec7bd5e)
- satellite: add workspace management to app settings (68df8c3)
- satellite: clarify app picker (6549e6b)
- satellite: emphasize app picker icons (7a13608)
- satellite: refine app picker header controls (89b860d)
- satellite: refine apps picker navigation (f84b553)
- satellite: standardize fixed app headers (7b86c42)
- satellite: unify app switcher headers (411a00c)
- seo: improve discovery metadata (a574409)
- seo: improve discovery metadata (8e2420d)
- seo: improve page metadata (0c621cb)
- seo: standardize app metadata (6523d91)
- tasks: add autonomous progress intelligence (ba35df5)
- tasks: add leaderboard leave button and per-member sparklines (5b65238)
- tasks: consolidate task dialog details into one disclosure (bcc2219)
- tasks: improve board settings controls (acc14d5)
- tasks: keep realtime on deep-linked cross-workspace tasks (5a29e78)
- tasks: make task management autonomous (431212d)
- tasks: resilient AI catch-up fallback and recommended-next panel (393f47c)
- tasks: revamp progress, goals, analytics & leaderboards with TrackBear parity (d1bda0e)
- tooling: guard satellites against cookie-client authorization (5c8fbd3)
- ui: align landing and locale experience (aa6e47f)
- web: add external app AI execution (67c863a)
- web: add member invite link management (7b46280)
- web: improve workspace navigation context (73959e3)
- web: make Mira the workspace dashboard (c2b8763)
- web: make Mira the workspace dashboard (#5079) (9023dab)
- web: rebuild about and contact pages (4775ac2)
- web: rebuild changelog and branding on the marketing system (813a6e9)
- web: rebuild marketing navbar (f0cd6f6)
- web: rebuild product marketing pages (fb96cd1)
- web: redesign marketing landing page (13ede78)
- web: refine marketing experience (c7f1cec)
- web: serve the GitHub release feed on /changelog (cca2927)
Bug Fixes
- ai: accept rich embedding payloads (a65b13f)
- ai: diagnose production settlement failures (60411c3)
- ai: improve playground credentials and diagnostics (b61db3c)
- ai: include workspace credit usage (854b1e7)
- ai: keep chat sdk server-only (b110543)
- ai: keep version badge inside intl provider (ace9003)
- ai: prefer direct Google gateway routing (06b6ef7)
- ai: preserve usage during schema rollout (3a24ef1)
- ai: prevent satellite auth loops (80f264c)
- ai: reconcile expired Studio reservations (aeeadd4)
- ai: refresh live observability ranges (819303b)
- ai: release zero-credit reservations (7a07de1)
- ai: repair Mira reasoning streams (c04386a)
- ai: repair studio settings administration (ec4c5e9)
- ai: restore members and paginate studio lists (9d83554)
- ai: restore workspace settings and translations (45b3c4f)
- ai: route Gemini embeddings through Google (3d94e5c)
- ai: suspend locale app shell (14c64a2)
- ai: use direct Google provider (3039a95)
- apps: stop registering a service worker the apps do not serve (16688e9)
- auth: keep a stored account session usable across switches (fb882cd)
- auth: redirect signup entry points to login (14a8a0f)
- auth: resume a pending sign-in after switching accounts (5403718)
- backend: remove obsolete authenticated request helper (81844db)
- backend: unblock workspace permissions deploy (1588c71)
- calendar: deduplicate mirrored events (04716f3)
- calendar: reconcile deleted provider events (fd0cedb)
- calendar: restore connection visibility controls (a1cf05b)
- calendar: restore provider calendar management (68753a8)
- chat: address external bridge review findings (30533fc)
- chat: align bridge readiness contracts (356f0d2)
- chat: close bridge edge cases (db585c8)
- chat: close external delivery review gaps (62e339f)
- chat: close final bridge review gaps (9d9a9b1)
- chat: close ingest delivery gaps (12fef72)
- chat: complete connected site hardening (9175456)
- chat: defer workspace layout to request time (#5083) (fda02a6)
- chat: fence concurrent AI retries (8fbf14b)
- chat: harden attachment retries (1e8ecf6)
- chat: harden bridge recovery paths (9dc22a7)
- chat: harden bridge retry boundaries (9affb39)
- chat: harden bridge review edge cases (0ecfad7)
- chat: harden connected site migration (73cccd0)
- chat: harden connected site sync (70e8785)
- chat: harden external bridge boundaries (2d25202)
- chat: harden external bridge synchronization (63ccf91)
- chat: harden personal Zalo integration (f1d12c6)
- chat: isolate native AI message runs (3ce6151)
- chat: keep Zalo phone sync alive (5cc7a0d)
- chat: limit message notifications (cc66b64)
- chat: make retries converge safely (e2c9eb8)
- chat: mount query state adapter (#5084) (60253f8)
- chat: preserve native message behavior (fc09530)
- chat: require credential revocation proof (f6fe750)
- chat: stop Zalo phone sync spam (b45e778)
- chat: validate bridge reply replays (f802774)
- ci: align legal effective date assertions (ec89a8e)
- ci: align marketing migration checks (7a94038)
- ci: align tanstack public route assertions (3cf9547)
- ci: assert legal dates per route (5ab0d0e)
- ci: build dist-only packages before the release check (8eecae4)
- ci: build packages for storefront cache e2e (a93c08c)
- ci: include workflow config core in sparse checkout (4c3fcec)
- ci: isolate production database secrets (d6859ae)
- ci: isolate reusable deployment concurrency (2de6fef)
- ci: keep latest production deploy runnable (45e4ceb)
- ci: keep task helper collection source-only (7355a05)
- ci: keep the release-notes branch until the release is tagged (833ceeb)
- ci: pin the environment in portless setup tests (9e4928a)
- ci: prevent duplicate and scheduled runs (73e5a17)
- ci: publish portable vendored UI dependencies (e69563f)
- ci: remove duplicate Docker volumes (20add8b)
- ci: repair the two failing checks on main (c6848fe)
- ci: resolve AI quality findings (0073444)
- ci: resolve biome release failures (77e6b68)
- ci: resolve shared task helper during e2e collection (0319a3b)
- ci: resolve types from source in storage-core tests (080328a)
- ci: restore dependency refresh validation (fc47eca)
- ci: restore explicit CodeQL ownership (9e1137a)
- ci: run the release check without ripgrep and cache its turbo build (13e36a0)
- ci: skip unconfigured git deployments (dc00a53)
- ci: stabilize satellite dependency installs (8e8d05a)
- ci: stabilize tasks lifecycle flow (f7a6356)
- ci: stop three script tests depending on the machine that runs them (c5fd573)
- ci: unblock database and legal checks (01496bf)
- clear residual quality findings (3ff6c3f)
- cms: accept offset concurrency timestamps (3060ecb)
- cms: accept offset concurrency timestamps (#4992) (01afeba)
- cms: address managed delivery review findings (7888033)
- cms: allow bound project member setup (c3d420d)
- cms: allow root admin member bootstrap (87f138e)
- cms: enable chat for custom templates (3f4cea1)
- cms: fence managed import claims (f4f9dda)
- cms: grant relation tables to service role (62d1d11)
- cms: grant relation tables to service role (#4991) (c34a711)
- cms: harden managed asset imports (60a1115)
- cms: harden managed asset imports (#4993) (b380b91)
- cms: harden managed import recovery (f266874)
- contacts: improve class scheduling and attendance (3bc9ef4)
- contacts: repair approval detail dialog (a948ea2)
- contacts: restore attendance and translation checks (3f1587b)
- contacts: restore audit log exports (4bae50b)
- contacts: restore profile request links (df3802f)
- contacts: stabilize metric mutations (085e28b)
- contacts: stop shadowing the workspace permissions summary (1a89892)
- database: deduplicate workspace user archive audit entries (27a0aff)
- database: order connected chat migrations (f7f5903)
- database: rerun creator membership repair (81a6a07)
- database: separate creator membership repair (8316c8f)
- deps: align Streamdown with Shiki 4 (0d89f55)
- deps: refresh shared nuqs lock entry (9cb8cf9)
- discord: update Pillow security release (eefc9d7)
- e2e: align workspace fixtures with creator membership (cfb13b6)
- e2e: follow actual tasks app origin (cb9604d)
- e2e: follow satellite route ownership (591190c)
- e2e: prepare tasks satellite dependencies (9af6be1)
- e2e: run tasks lifecycle in CI (bed2cd5)
- e2e: wait for onboarding readiness (127fa63)
- editor: avoid duplicate link extension (86c5ead)
- editor: avoid duplicate link extension (#5035) (7d2c7f1)
- editor: harden toolbar focus handling (52a933e)
- editor: harden toolbar interactions (8c4d77b)
- editor: improve toolbar accessibility (8b46cb0)
- editor: refine tooltip accessibility (36180e6)
- editor: stabilize link popover (c400197)
- editor: use publishable icon runtime (059ea97)
- editor: validate rich text URLs (415094f)
- external-chat: allow bridge route alias (b259d9d)
- external-chat: allow bridge route alias (#5082) (4b294d4)
- external-chat: complete connected-site setup (#5081) (17a2b16)
- external-projects: pin the submissions POST return type (0b0f900)
- git: apply Streamdown token colors (74bf301)
- git: load Streamdown theme styles (afd1941)
- git: repair production repository routing (d615d34)
- git: repair repository rendering and routes (3f71a05)
- git: restore production markdown build (06be083)
- infrastructure: authorize external app registry sessions (a09e8f7)
- infrastructure: freeze Vercel dependency installs (96cd10c)
- infrastructure: guard whitelist request rendering (a84acac)
- infrastructure: own admin APIs and paginate models (a73514c)
- infrastructure: own AI credit admin APIs (4606857)
- infrastructure: pin Vercel Bun installer (2dcaef0)
- infrastructure: proxy workspace list (a444f9d)
- infrastructure: proxy workspace list (#5080) (36b7b21)
- infrastructure: restore production builds (a9adc4a)
- infrastructure: select chat canary workspace (4832ab5)
- infrastructure: use satellite database runtime (ee4044e)
- inventory: authorize admin POS fallback (9ba0fbc)
- inventory: clarify unconfigured Square readiness (c56d583)
- inventory: compact mobile sale workflow (779712c)
- inventory: condense mobile sale catalog (fdea63b)
- inventory: correct Square catalog currency units (85ea320)
- inventory: correct storefront bundle checkout (cb9c247)
- inventory: distinguish Square POS device paths (4654605)
- inventory: gate cent prices on schema readiness (276aa58)
- inventory: harden sales analytics and access (53968d3)
- inventory: harden Square production handoff (8ef0395)
- inventory: honor adjusted sale prices (1393ac9)
- inventory: improve sales period workflows (2a7cad5)
- inventory: localize Square POS checkout (a74a2be)
- inventory: make storefront removal safe (9dd4dc6)
- inventory: normalize sales revenue units (99fa671)
- inventory: polish mobile sales and settings (59ef49c)
- inventory: preserve fractional Square prices (9379464)
- inventory: reconcile checkout sales analytics (b872994)
- inventory: reconcile provider checkout stock (2160487)
- inventory: recover Square exact-price imports (a377ed8)
- inventory: repair Square terminal pairing (d4c297d)
- inventory: repair storefront removal rollout (cb5828b)
- inventory: require Drive image uploads (943a39d)
- inventory: reset bulk edit controls (bffc4b9)
- inventory: restore product and sales CRUD (c691e74)
- inventory: restore referral settings and currency (6676838)
- inventory: streamline mobile sales and shared settings (72b7724)
- localize realtime analytics filters (10c14fa)
- meet: accept satellite app-session auth on the meetings API (7f97eac)
- meet: attribute remote tracks to their publisher (7f206bc)
- meet: authorise meeting edit and delete from the satellite (00524ab)
- meet: mount the nuqs adapter in the root layout (3931063)
- meet: normalize workspace aliases in the meetings API (1c2688f)
- meet: reconnect dropped call signaling with a fresh join token (3c6cb41)
- meet: restore the notifications namespace so Plans stops erroring (675611d)
- mira: refresh live sessions and refine voice UX (bbf29b5)
- mobile: compact navigation and biometric lock (5fa1589)
- mobile: harden finance and inventory experiences (0f1e7a0)
- mobile: preserve bearer auth across satellites (f890170)
- mobile: refine compact navigation and page hierarchy (e422c19)
- mobile: require signed native release builds (55cedc3)
- mobile: restore tasks bearer access (2aedf84)
- mobile: route APIs to satellite owners (2f2222f)
- mobile: simplify dense navigation and calendar events (dca28dd)
- mobile: stabilize navigation and QR login (4e208a1)
- mobile: stabilize workspace selection and inventory cache (229af0d)
- open pay billing links in new tabs (c6c565f)
- pay: restore AI credit wallet loading (9b3aa65)
- pay: serve AI credits from Pay (cb9a9b5)
- platform: improve satellite workspace routing (0c49c48)
- platform: improve task details and satellite saves (441c283)
- platform: persist settings dialog state (04d2128)
- platform: repair calendar sync and member auth (fcf8f89)
- platform: stabilize offline and calendar initialization (8ef8fbc)
- quality: address AI findings (c24f827)
- remove unreachable group queries (0ff2882)
- reports: scale delivery maintenance and report counts (4dd4f47)
- resolve code quality findings (63f10b5)
- resolve remaining quality suggestions (826aec4)
- satellite: align app picker header (96758ef)
- satellite: align sidebar workspace spacing (199de40)
- satellite: clarify apps picker controls (528bf51)
- satellite: harden workspace settings translations (7315a2d)
- satellite: restore mobile workspace settings (e276f40)
- satellite: restore workspace settings access (6b4c4f9)
- satellite: share apps picker preference (fb80637)
- satellites: stop authorizing app-session callers with the cookie client (b0d0242)
- security: enforce infrastructure workspace permissions (00b469c)
- security: hide workspace member handle probes (0369b58)
- security: remediate code scanning findings (023db2e)
- security: sanitize unsubscribe response boundary (a179933)
- settings: enable satellite profile management (4876ae2)
- settings: harden workspace role management (0570687)
- settings: hydrate shared profile data (7890e61)
- settings: make the workspace permissions summary one total contract (d88e709)
- settings: repair satellite workspace management (63614cd)
- settings: restore satellite workspace management (be1fb5a)
- storefront: show uploaded bundle images (beff755)
- storefront: stop registering missing service worker (655a382)
- tanstack: align migrated marketing routes (6337286)
- tasks: align selected checkbox icon (805f7d9)
- tasks: compile task styles with UI globals (bb1d600)
- tasks: guarantee root workspace resolution (94f674d)
- tasks: isolate selection state from tooltips (d91670e)
- tasks: keep board settings tabs in context (b26c6c3)
- tasks: localize root proxy rewrites (83109f9)
- tasks: make board settings dialog singleton (f6e9093)
- tasks: open task links that point outside the current workspace (8f46e08)
- tasks: open the dialog on Properties and settle it in one step (2780950)
- tasks: polish task card indicators (d34966f)
- tasks: preserve bulk task list rows (5aac158)
- tasks: quiet the description toolbar and name the compact action honestly (51838a0)
- tasks: redirect roots to canonical boards (bfc7cf2)
- tasks: repair onboarding and external metadata (e0b62eb)
- tasks: restore app-session history reads (12bbc01)
- tasks: restore scrolling in the focused task dialog (ee2d312)
- tasks: restore task board layout styles (29e052b)
- tasks: restore task description on deep-link opens (56d4efa)
- tasks: route progress catch-ups through AI Gateway (780e917)
- tasks: show one skeleton per task dialog open (944288b)
- tasks: show select all for empty lists (485ccd7)
- tasks: stabilize settings and list ordering (6dc9f2e)
- tasks: stabilize task card selection layout (5754a9c)
- tasks: stop the task dialog remounting after it opens (9a423da)
- tasks: translate board reorder feedback (4d355d1)
- tasks: unify settings navigation (2f305e0)
- tasks: widen focused task dialog (e9fd624)
- tooling: report which script test failed instead of nothing (e9154e4)
- tooling: support webpack verification builds (5275e10)
- ui: make member management mobile responsive (104c812)
- ui: preserve hosted workspace logos (1f8e8b2)
- ui: prevent iOS form focus zoom (a0e3f3c)
- ui: publish portable vendored dependencies (99ad359)
- ui: refine member access settings (b5b1ebf)
- ui: unify workspace access and sidebar controls (450183e)
- vscode: update TypeScript SDK path and clean up settings (51c940b)
- web: accept satellite app sessions for member invites (4d90ceb)
- web: address Mira voice review feedback (dd0187f)
- web: apply saved theme before first paint (bcbfb9f)
- web: close external chat dispatchers safely (a210edf)
- web: decode Gemini interaction audio (9a8c148)
- web: harden external Gemini TTS (815b175)
- web: harden Mira voice session transitions (d78f864)
- web: harden prerender client boundaries (ab1596a)
- web: isolate UI docs navigation controls (94741d3)
- web: keep runtime providers suspended (a2714b8)
- web: preserve external chat request results (2811056)
- web: repair and meter Mira Live mode (2fb0ec4)
- web: repair Mira Live connection and states (ad841bb)
- web: repair Mira Live token provisioning (55f786d)
- web: repair Mira model picker routing (5ad8a23)
- web: restore changelog preview build (7c85f52)
- web: restore hidden workspace selector spacing (da28160)
- web: restore Mira Live connection (92d3c83)
- web: restore Mira Live token provisioning (0569ab8)
- web: route the QR generator to the tools app (424dbfd)
- web: scroll to deep-linked landing sections (6a9d95e)
- web: select Gemini TTS API revision (2edb5e2)
- workspaces: keep the creator a member of the workspace they create (8b33f42)
- workspaces: preserve creator administration access (cea32ea)
- workspaces: propagate a workspace rename without a page reload (cca0b2d)
- workspaces: repair shared member administration (8a1515b)
- workspaces: revoke direct board guest access (32c0fc1)
- workspaces: route satellite creation through setup (754bf1b)
Performance Improvements
- ci: attach deploys to commit runs (7d213b8)
- ci: centralize production deployment planning (1331e31)
- ci: exclude gate-only changes from app deploys (da85ff6)
- ci: reduce redundant runner fan-out (78fe6a0)
- ci: skip deploys for orchestration-only changes (c543f99)
- cms: scope external project studio reads (ff53213)
- contacts: accelerate virtual user listing (8d0b86c)
- git: optimize repository browsing (22d4b9e)
- inventory: add event-driven storefront caching (2f571f4)
- storefront: share customer navigation shell (21cb78d)
- storefront: stabilize navigation and cart rendering (471c6b7)
- web: optimize landing page (32a3023)
- web: smooth mobile landing sections (d3fae9a)