Skip to content

platform: v0.29.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 18:20

0.29.0 (2026-07-27)

Features

  • ai: add workspace AI Studio and legal coverage (6de4e39)
  • ai: enforce external app usage policy (e229116)
  • apps: unify and redesign app catalog (b679068)
  • auth: offer Microsoft sign-in again (fe981ee)
  • calendar: redesign workspace sidebar (194e126)
  • 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: migrate feedbacks, tutoring, guest-leads to apps/contacts (47bafeb)
  • contacts: migrate reports + groups and complete the users cutover (2ee89cd)
  • contacts: migrate users [userId]/follow-up; fix owned-route matcher (765b87a)
  • contacts: migrate users approvals module, extracting shared parts to packages (e66ae32)
  • contacts: migrate users attendance; add satellite-safe workspace-user link helper (8f53453)
  • contacts: migrate users group-tags module (bcc61e4)
  • contacts: migrate users topic-announcements module (01e19ab)
  • contacts: migrate users/database UI into apps/contacts (d3aa461)
  • contacts: migrate users/structure (org chart) to apps/contacts (93f2cb5)
  • contacts: move user-management settings into apps/contacts dialog (b6a3efe)
  • contacts: reconcile managers and harden attendance (9f0d302)
  • contacts: redirect non-migrated workspace routes to apps/web (f5a6518)
  • contacts: refine report review experience (0dd3247)
  • contacts: serve notifications locally (0fd7a89)
  • editor: add icon toolbar tooltips (6b3f1b8)
  • editor: add icon toolbar tooltips (#5034) (7e687b1)
  • editor: add localized external project editing (38cae2c)
  • edu: add vocabulary journey (#4946) (06535d2)
  • education: align teach and learn navigation (48896cd)
  • external-apps: add scoped drive attachments (a03d577)
  • 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)
  • forms: merge satellite migration (e739f1b)
  • forms: migrate product to satellite app (51b9392)
  • implement AI-assisted feedback generation for student quiz submissions (e347a46)
  • improve vocabulary details (#4958) (9e01bd1)
  • infrastructure: add platform account recovery (8a0c757)
  • 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 guided Square POS setup (4f0560a)
  • inventory: add POS device management (822a171)
  • inventory: add promotions navigation (f1c5b76)
  • inventory: add responsive catalog workflows (f81815f)
  • inventory: add sales periods and mobile commerce (fa442c9)
  • inventory: complete Square commerce integration (fe63eca)
  • inventory: guide Square POS launch (74e0a3a)
  • inventory: improve sales discovery and cart (cced561)
  • 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)
  • mail: add advanced mailbox APIs and shadow ingestion (2543fc5)
  • mail: add catch-all delivery and revamp client (8d4cb12)
  • mail: add smart labels and assisted composing (8ccd2fa)
  • mail: focus mailbox shell (4c2604d)
  • mail: refine composer and reading experience (926a28c)
  • mail: streamline instant navigation and AI drafting (76bd964)
  • marketing: rebuild security, partners, careers, blog and contributors (98515d7)
  • marketing: rebuild the legal kit, security subpages and docs chrome (9a4cfaa)
  • migrate vocabulary details and suggestions from OED to Laban Dictionary (0f549c2)
  • mobile: revamp app lock experience (22b300b)
  • navigation: open workspace selector on reveal (c760d42)
  • offline: own service worker runtime and refresh dependencies (ae44477)
  • platform: complete satellite app cutover (b9ac2ef)
  • posts: audit log + revert for group-post completion checks (b38de09)
  • posts: reset / uncheck-all / history UI for group-post checks (bb2ecdc)
  • 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)
  • storefront: add inventory management deep link (c59bc71)
  • storefront: refine the buyer experience (45d0e76)
  • 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: keep realtime on deep-linked cross-workspace tasks (5a29e78)
  • tasks: make task management autonomous (431212d)
  • tasks: promote progress tracking workspace (058503a)
  • tasks: resilient AI catch-up fallback and recommended-next panel (393f47c)
  • tasks: revamp progress, goals, analytics & leaderboards with TrackBear parity (d1bda0e)
  • tasks: streamline bulk selection and progress (3bd2934)
  • tooling: guard satellites against cookie-client authorization (5c8fbd3)
  • ui: align landing and locale experience (aa6e47f)
  • web: add member invite link management (7b46280)
  • web: improve workspace navigation context (73959e3)
  • 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: keep version badge inside intl provider (ace9003)
  • ai: prevent satellite auth loops (80f264c)
  • ai: repair Mira reasoning streams (c04386a)
  • ai: suspend locale app shell (14c64a2)
  • apps: opt authed pages and GET routes into request-time rendering under cacheComponents (9496ec3)
  • apps: stop registering a service worker the apps do not serve (16688e9)
  • auth: keep a stored account session usable across switches (fb882cd)
  • auth: resume a pending sign-in after switching accounts (5403718)
  • backend: remove obsolete authenticated request helper (81844db)
  • backend: restore Rust CI (34e7c6a)
  • 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: harden personal Zalo integration (f1d12c6)
  • chat: keep Zalo phone sync alive (5cc7a0d)
  • chat: stop Zalo phone sync spam (b45e778)
  • ci: align E2E with satellite routes (1a26853)
  • ci: align marketing migration checks (7a94038)
  • ci: align tanstack public route assertions (3cf9547)
  • ci: build dist-only packages before the release check (8eecae4)
  • ci: build packages for storefront cache e2e (a93c08c)
  • ci: grant E2E Bake secret access (1faff06)
  • 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: preserve package release metadata (a30c029)
  • 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 format + empty-package test failures on main (e1520a0)
  • 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: restore repository validation parity (db6afe4)
  • ci: run the release check without ripgrep and cache its turbo build (13e36a0)
  • ci: select Buildx for E2E caching (63bf5d4)
  • ci: stabilize E2E caching (18edc81)
  • ci: stabilize flaky unit-test timeouts under repo-wide Turbo runs (832bd2c)
  • 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)
  • clear residual quality findings (3ff6c3f)
  • cms: accept compressed sync manifests (#4959) (bc77d84)
  • 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: batch large project queries (#4960) (c71e58b)
  • cms: canonicalize sync schemas (#4963) (17fa553)
  • 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)
  • cms: paginate external project snapshots (#4962) (1d3a253)
  • cms: preserve entry dialog navigation state (21f13c7)
  • cms: reconcile legacy slug identities (#4961) (0499cb4)
  • contacts: add missing shared i18n namespaces; move contacts into the checked apps (0971c8f)
  • contacts: authenticate users database requests (54ddc74)
  • contacts: authorize attendance and consolidate manager links (a11d06d)
  • contacts: backfill shared-shell translation keys and close the scan gap (90b4672)
  • contacts: complete CRM translations (0a9ba1c)
  • contacts: complete database translations (d20b991)
  • contacts: complete report translations (61c77f0)
  • contacts: consolidate manager profiles (69529a3)
  • contacts: drop force-dynamic segment config incompatible with cacheComponents (db263e1)
  • contacts: fall back to first workspace, not the root workspace (937d8d0)
  • contacts: load group metrics and calendar (8f3d310)
  • contacts: opt authed pages into request-time rendering with connection() (df7288c)
  • contacts: own post approval APIs (632aa32)
  • contacts: own settings and profile APIs (d809fe0)
  • contacts: own workspace user mutations (21ab1fb)
  • contacts: provide nuqs adapter (17f4ac4)
  • contacts: redirect app entry to the default workspace (244e852)
  • contacts: repair approval detail dialog (a948ea2)
  • contacts: resolve group API app sessions locally (30a8917)
  • contacts: resolve workspace + permissions from the app session (55cffe4)
  • contacts: restore attendance and translation checks (3f1587b)
  • contacts: restore audit log exports (4bae50b)
  • contacts: restore coupon discovery (cb7dfea)
  • contacts: restore group and report operations (8760868)
  • contacts: restore group post mutations (fe621e4)
  • contacts: restore user group and report mutations (0f3f12d)
  • contacts: restore workspace posts (df08eae)
  • contacts: stop catch-all routes from shadowing the /api � web proxy (852a79b)
  • contacts: stop shadowing the workspace permissions summary (1a89892)
  • contacts: stream group overview sections (349e68f)
  • database: deduplicate workspace user archive audit entries (27a0aff)
  • database: link managers when membership arrives (04691ce)
  • database: reference private.user_group_posts in post-check-logs FK (15ec4bf)
  • database: refresh vocabulary migration timestamp (ced09e5)
  • 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: prune migrated routes from the tanstack auth-gate list (92e2862)
  • e2e: run tasks lifecycle in CI (bed2cd5)
  • e2e: skip satellite-owned web tests (04c58aa)
  • 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)
  • edu: address follow-up vocabulary review (c21565f)
  • edu: resolve vocabulary journey review feedback (46e4180)
  • email: use server-native HTML sanitizer (e16fbd8)
  • external-projects: pin the submissions POST return type (0b0f900)
  • finance: add overview net total translation (5e2059b)
  • finance: keep server API calls on finance origin (ca6248a)
  • finance: make pending invoice RPCs server-only (8c73298)
  • finance: restore invoice creation dependencies (653d5cb)
  • finance: restore invoice promotions (00f7030)
  • 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: restore production builds (a9adc4a)
  • infrastructure: use satellite database runtime (ee4044e)
  • inventory: authorize admin POS fallback (9ba0fbc)
  • inventory: clarify payment sync and settings (cf05ed6)
  • 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)
  • learn: clarify vocabulary practice requirement (44b5000)
  • localize realtime analytics filters (10c14fa)
  • mail: add settings translations (da50201)
  • mail: allow signed provider webhooks (adbbb87)
  • mail: pass ingest secret to builds (7d4e317)
  • mail: restore production inbox rendering (e03a782)
  • mail: stabilize layout and managed sender identity (a22205e)
  • mail: use managed SES credentials (9ffb3a1)
  • meet: authorize workspace app sessions (4a4f8b7)
  • meet: resolve personal workspace invites by actor (1fab56d)
  • 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: address attendance and invoice feedback (8d2a537)
  • 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)
  • 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: prevent clickjacking across apps (c8ed36e)
  • 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: route inventory requests correctly (d924e8f)
  • 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: 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: repair onboarding and external metadata (e0b62eb)
  • tasks: repair task media permissions (28a0bf1)
  • tasks: restore app-session history reads (12bbc01)
  • tasks: restore satellite bulk mutations (d0282a4)
  • 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 task card selection layout (5754a9c)
  • tasks: stop the task dialog remounting after it opens (9a423da)
  • tasks: widen focused task dialog (e9fd624)
  • teach: address final AI review feedback (05fc697)
  • teach: address vocabulary review feedback (4efa1a8)
  • teach: harden AI feedback concurrency (f470e6e)
  • teach: preserve saved vocabulary feedback (976fd2c)
  • tooling: report which script test failed instead of nothing (e9154e4)
  • ui: make member management mobile responsive (104c812)
  • 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)
  • vocabulary: stabilize CI and OED lookup (0d153a7)
  • vscode: update TypeScript SDK path and clean up settings (51c940b)
  • web: accept satellite app sessions for member invites (4d90ceb)
  • web: harden prerender client boundaries (ab1596a)
  • web: isolate UI docs navigation controls (94741d3)
  • web: repair Mira model picker routing (5ad8a23)
  • web: restore changelog preview build (7c85f52)
  • web: restore hidden workspace selector spacing (da28160)
  • web: route the QR generator to the tools app (424dbfd)
  • web: scroll to deep-linked landing sections (6a9d95e)
  • workspaces: keep the creator a member of the workspace they create (8b33f42)
  • workspaces: propagate a workspace rename without a page reload (cca0b2d)
  • workspaces: repair shared member administration (8a1515b)
  • workspaces: revoke direct board guest access (32c0fc1)

Performance Improvements

  • ci: attach deploys to commit runs (7d213b8)
  • ci: centralize production deployment planning (1331e31)
  • ci: deduplicate Bun caches (5d64570)
  • ci: enable repository-wide remote caching (6250f91)
  • ci: exclude gate-only changes from app deploys (da85ff6)
  • ci: prepare E2E images before allocating shards (c109484)
  • ci: reduce redundant runner fan-out (78fe6a0)
  • ci: retain E2E registry layers (c6fcc55)
  • ci: reuse E2E Docker images across shards (5329dbf)
  • ci: serialize BuildKit cache writers (72bab33)
  • ci: skip deploys for orchestration-only changes (c543f99)
  • ci: streamline E2E image caching (21d8c85)
  • cms: scope external project studio reads (ff53213)
  • contacts: accelerate virtual user listing (8d0b86c)
  • 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: reduce dashboard request overhead (93f4b2b)
  • web: smooth mobile landing sections (d3fae9a)