---
collection: frontend-frameworks
collection_name: Frontend Frameworks
week_start: 2026-09-07
title: PostHog in one command, and a breaking EAS observe realignment
release_count: 25
generated: 2026-09-14
canonical: https://releases.sh/collections/frontend-frameworks/digest/2026-09-07
---

# PostHog in one command, and a breaking EAS observe realignment

Expo shipped a one-command PostHog integration for EAS apps and a breaking EAS CLI v24.0.0 that realigns the observe commands, while SvelteKit's 3.0 pre-releases swept a builder API change across every adapter.

### Expo makes analytics and observability a one-liner

The week's biggest ergonomic win came from [Expo's one-command PostHog integration](/release/rel_WOQrTXbPVo6o7V4R4Byli-expo-adds-one-command-posthog-integration-for-eas-apps). What used to be a small project in itself — creating a PostHog org, creating a project, installing three or four packages depending on which features you wanted, wiring up a config plugin, copying keys between browser tabs — is now `eas integrations:posthog:connect`. Existing PostHog users get a browser prompt to link an org first. The interesting part is the depth of the wiring: EAS Workflows can emit `posthog_capture_event` events with `eas/` prefixed names that link back to Expo, and PostHog can break funnels down by update ID, which turns OTA update rollouts into something you can actually measure rather than guess at.

On the tooling side, [EAS CLI v24.0.0](/release/rel_6jOJGxNCg5Hv0ThPqzXnx-eas-cli-v24-0-0-realigns-observe-commands-and-adds-channel-protection) is the release to read carefully before upgrading. The `eas observe:*` commands now align with the renamed Observe GraphQL schema: JSON output switches from `metricName`/`metricValue` to `name`/`value`, log events use `name` instead of `eventName`, and `eas observe:events` lists user-defined events only — exceptions moved out to the new `eas observe:errors`. If you have scripts parsing that JSON, they break. The same release adds `eas channel:protect`/`eas channel:unprotect` for EAS Update channel protection and `lcd_width`, `lcd_height`, `lcd_density` inputs for the Android emulator display.

The rest of the EAS CLI line moved fast in support. [v24.2.0](/release/rel_KZ-xjMPIIGzDXTOoUoKrO-eas-cli-v24-2-0-adds-workflow-insights-commands-for-run-metrics) added `eas workflow:insights` for run counts, success rate versus the previous period, and a per-workflow breakdown, plus `workflow:insights:maestro` for Maestro pass and flake rates; both take `--json`. [v24.1.0](/release/rel_o6Kn04T45946DJP5zvWQR-eas-cli-v24-1-0-adds-local-egress-support-for-simulator-sessions) introduced `--egress local` for simulator sessions, forwarding `localhost` and `127.0.0.1` entries from the simulator host's loopback so dev server URLs just work — followed by two quick polish fixes ([v24.1.1](/release/rel_609-hCKjTkd616QcDyGcb-eas-cli-v24-1-1-fixes-spurious-egress-prompt-for-simulator-start), [v24.1.2](/release/rel_-sgFrKSdphvyLN_WJwGoP-eas-cli-v24-1-2-shortens-local-egress-banner-in-simulator-start)) that stopped the CLI nagging users to run `eas simulator:egress` when the client was already in the same terminal. [v24.3.0](/release/rel_rU_S5hXiPXvnjuiaD-it1-eas-cli-v24-3-0-adds-shared-protocol-for-sandbox-daemon-commands) added a shared protocol for sandbox daemon commands.

### SvelteKit 3.0 pre-releases land a builder API change everywhere

The SvelteKit 3.0 pre-release train shipped a coordinated breaking change across the whole adapter family: `builder.generateManifest` is replaced by `builder.generateServerInstance` and `builder.manifest`, and env vars are now populated before `instrumentation.server.js` is evaluated. That landed in [adapter-vercel](/release/rel_CyqvBEc4JbWPlhp6xmVXS-sveltejs-adapter-vercel-7-0-0-next-9), [adapter-node](/release/rel_4OOT8J_4l2QSFaty-s0EH-sveltejs-adapter-node-6-0-0-next-12), [adapter-netlify](/release/rel_Owu6d8BfcZKtzNfu1QB-x-sveltejs-adapter-netlify-7-0-0-next-11), and [adapter-cloudflare](/release/rel_ybvvio42ztg8Y4OKoAn9U-sveltejs-adapter-cloudflare-8-0-0-next-7). Cloudflare's release goes further, dropping the `platform` object in favor of emulating the `cloudflare:workers` module. Core [@sveltejs/kit@3.0.0-next.27](/release/rel_If88CxPcet_jrxHqkifRd-sveltejs-kit-3-0-0-next-27) also errors when a client-requested single-flight mutation isn't respected by the server, and removes the `Server` constructor and `SSRManifest` from public types. If you maintain an adapter or lean on instrumentation hooks, this is the week to start reading diffs. Elsewhere, [adapter-bun](/release/rel_V8TFrzH9uQdGVIOEH5WKM-sveltejs-adapter-bun-1-0-0-next-2) now requires Bun 1.4, and [adapter-auto](/release/rel_rDezaQ86dQM7Sm1Gx6Yw0-sveltejs-adapter-auto-8-0-0-next-4) added zero-config deployment support for Render.

### Next.js canaries: caching and cache correctness

Next.js canary work this week was less about features than about making `use cache` behave under pressure. [16.4.0-canary.23](/release/rel_QZMUxP25q1hR6o-npSc-8-next-js-v16-4-0-canary-23-adds-durable-use-cache-in-client-components) extended durable use-cache entries to client components, [canary.26](/release/rel_IO3kjjWns-yDbpDe14OtZ-next-js-v16-4-0-canary-26-fixes-image-socket-sharing-and-duplicate-cache) fixed duplicate background revalidation for `use cache` and stopped next/image from sharing the requester's socket with its internal image response, and [canary.20](/release/rel_vkI8phmT4q47EAkiGJwXd-next-js-v16-4-0-canary-20-fixes-canceled-task-hang-in-turbo-tasks-backend) fixed a turbo-tasks backend hang where strongly consistent reads stalled on a canceled task. A batch of those fixes was backported to stable in [16.3.5](/release/rel_bweNnGn0URsmLsX5upu3_-next-js-v16-3-5-fixes-image-cache-and-use-cache-prerender-signal), which also skips 0-byte entries in the next/image disk LRU cache and rejects empty images on read/write — worth taking if you've seen odd image cache behavior. Smaller canary items: [canary.21](/release/rel_yuIZp3GFDI5hdCvjeobEi-next-js-v16-4-0-canary-21-adds-instant-cache-validation-for-excluded-prerenders) extended instant cache validation to caches excluded from prerenders, [canary.22](/release/rel_yOs24v9ADBpt4I0ieIuhS-next-js-v16-4-0-canary-22-adds-resolve-and-version-to-loaders-api) added `.resolve` and a version field to the loaders API, [canary.25](/release/rel_3fKcPZ-EzCUJ7U6Qa5PjK-next-js-v16-4-0-canary-25-adds-react-browser-bailout-by-default) enabled React browser bailout by default, and [canary.24](/release/rel_6iWKfg6jSSEL_4I9qAg6n-next-js-v16-4-0-canary-24-fixes-initial-turbopack-hmr-handling), [canary.27](/release/rel_qOsSvsDU2Vbdk36vghqW3-next-js-v16-4-0-canary-27-adds-experimental-imgoptmozjpeg-config-and-lazy), and [canary.28](/release/rel_DHDOslkunBJKPgxO6oCVn-next-js-v16-4-0-canary-28-updates-turbopack-result-payloads) handled Turbopack HMR and payload cleanups, including an experimental `imgOptMozjpeg` config.

## Releases covered

### Expo

- [Expo adds one-command PostHog integration for EAS apps](https://releases.sh/release/rel_WOQrTXbPVo6o7V4R4Byli-posthog-connects-to-expo-app-in-one-command)
- [EAS CLI v24.0.0 realigns observe commands and adds channel protection](https://releases.sh/release/rel_6jOJGxNCg5Hv0ThPqzXnx-observe-output-realigned-channel-protection-added)
- [EAS CLI v24.2.0 adds workflow:insights commands for run metrics](https://releases.sh/release/rel_KZ-xjMPIIGzDXTOoUoKrO-workflow-insights-run-counts-success-rate-per-flow-maestro-history)
- [EAS CLI v24.1.0 adds local egress support for simulator sessions](https://releases.sh/release/rel_o6Kn04T45946DJP5zvWQR-simulator-sessions-get-local-egress-egress-allow-flag-added)
- [EAS CLI v24.1.1 fixes spurious egress prompt for simulator:start](https://releases.sh/release/rel_609-hCKjTkd616QcDyGcb-no-more-spurious-egress-prompt-on-simulator-start)
- [EAS CLI v24.1.2 shortens local egress banner in simulator:start](https://releases.sh/release/rel_-sgFrKSdphvyLN_WJwGoP-local-egress-banner-shortened-in-simulator-start)
- [EAS CLI v24.3.0 adds shared protocol for sandbox daemon commands](https://releases.sh/release/rel_rU_S5hXiPXvnjuiaD-it1-shared-protocol-for-sandbox-daemon-commands)

### Svelte

- [@sveltejs/adapter-vercel@7.0.0-next.9](https://releases.sh/release/rel_CyqvBEc4JbWPlhp6xmVXS-sveltejs-adapter-vercel-7-0-0-next-9)
- [@sveltejs/adapter-node@6.0.0-next.12](https://releases.sh/release/rel_4OOT8J_4l2QSFaty-s0EH-sveltejs-adapter-node-6-0-0-next-12)
- [@sveltejs/adapter-netlify@7.0.0-next.11](https://releases.sh/release/rel_Owu6d8BfcZKtzNfu1QB-x-sveltejs-adapter-netlify-7-0-0-next-11)
- [@sveltejs/adapter-cloudflare@8.0.0-next.7](https://releases.sh/release/rel_ybvvio42ztg8Y4OKoAn9U-sveltejs-adapter-cloudflare-8-0-0-next-7)
- [@sveltejs/kit@3.0.0-next.27](https://releases.sh/release/rel_If88CxPcet_jrxHqkifRd-sveltejs-kit-3-0-0-next-27)
- [@sveltejs/adapter-bun@1.0.0-next.2](https://releases.sh/release/rel_V8TFrzH9uQdGVIOEH5WKM-sveltejs-adapter-bun-1-0-0-next-2)
- [@sveltejs/adapter-auto@8.0.0-next.4](https://releases.sh/release/rel_rDezaQ86dQM7Sm1Gx6Yw0-sveltejs-adapter-auto-8-0-0-next-4)

### Vercel

- [Next.js v16.4.0-canary.23 adds durable use-cache in client components](https://releases.sh/release/rel_QZMUxP25q1hR6o-npSc-8-durable-use-cache-with-client-components-csp-nonce-added)
- [Next.js v16.4.0-canary.26 fixes image socket sharing and duplicate cache revalidation](https://releases.sh/release/rel_IO3kjjWns-yDbpDe14OtZ-image-responses-stop-sharing-requester-socket-cache-revalidation-deduped)
- [Next.js v16.4.0-canary.20 fixes canceled-task hang in turbo-tasks backend](https://releases.sh/release/rel_vkI8phmT4q47EAkiGJwXd-canceled-task-read-hang-fixed)
- [Next.js v16.3.5 fixes image cache and use cache prerender signal](https://releases.sh/release/rel_bweNnGn0URsmLsX5upu3_-image-disk-cache-handles-0-byte-entries-use-cache-signal-fixed)
- [Next.js v16.4.0-canary.21 adds instant cache validation for excluded prerenders](https://releases.sh/release/rel_yuIZp3GFDI5hdCvjeobEi-excluded-prerender-caches-validate-instantly)
- [Next.js v16.4.0-canary.22 adds .resolve and version to loaders API](https://releases.sh/release/rel_yOs24v9ADBpt4I0ieIuhS-loaders-api-gains-resolve-and-version)
- [Next.js v16.4.0-canary.25 adds React browser bailout by default](https://releases.sh/release/rel_3fKcPZ-EzCUJ7U6Qa5PjK-react-browser-bailout-enabled-by-default)
- [Next.js v16.4.0-canary.24 fixes initial Turbopack HMR handling](https://releases.sh/release/rel_6iWKfg6jSSEL_4I9qAg6n-turbopack-hmr-initial-update-handling-fixed)
- [Next.js v16.4.0-canary.27 adds experimental imgOptMozjpeg config and lazy dynamic imports](https://releases.sh/release/rel_qOsSvsDU2Vbdk36vghqW3-experimental-imgoptmozjpeg-config-dev-dynamic-imports-compile-lazily)
- [Next.js v16.4.0-canary.28 updates Turbopack result payloads](https://releases.sh/release/rel_DHDOslkunBJKPgxO6oCVn-turbopack-result-payloads-made-disjoint)
