wwwwwwwwwwwwwwwwwww

Changelog

Weekly updates and changes to Takeout

Week of June 15, 2026

66d28b6b

Features

  • Self-healing stale local state — createZeroClient now detects when the local Zero state diverges from the server and triggers automatic recovery by resetting the client, preventing silent data corruption
  • Per-reason recovery strategy — each recovery trigger (stale state, auth expiry, connection loss) maps to a targeted cure action instead of a blanket reset, reducing unnecessary full re-syncs
  • Multi-use case split for on-zero — the use function now supports separate cases for different query patterns, improving performance by avoiding unnecessary re-renders across unrelated queries

Improvements

  • Auth data cleanup on logout — authData is cleared per-instance on logout, preventing stale auth state from leaking between sessions
  • Worker-safe recovery reload — uses globalThis.location?.reload?.() to safely reload in worker contexts where location.reload isn’t available
  • Named queries kept off the mutation runner — prevents named (materialized) queries from being routed through the mutation runner, avoiding redundant server work and potential conflicts
  • Anonymous connections use Zero client-fallback instead of server-validated null — ensures anonymous users get a working client without requiring server-side validation that may not apply
  • Exponential backoff in run() — automatic retry with exponential backoff and stable-uptime reset on watch-restart, making dev-mode reconnections more reliable
  • Dev-boot codegen skips when src/data is unchanged — on-zero now avoids regenerating code during dev startup if the source data directory hasn’t changed, significantly reducing cold-start time
  • Drizzle version range loosened to match beta ranges
  • Manual cleanup of on-zero changes for code quality — type consistency and dropped redundant casts
  • Shared bun install for CI — reverts to a single install step for faster builds

Upgrades

  • One upgraded to 1.18.3 — fixes native swipe-back unsaved-changes guard
  • Tamagui upgraded with performance improvements
  • Shared dependency upgrades across one and tamagui

Bug fixes and chores (15)

Week of June 8, 2026

9b969e60

Features

  • Multi-instance Zero clients — combineZeroClients with namespace dispatch lets you run multiple isolated Zero instances in the same app, each with its own schema, auth, and transport. Ideal for multi-tenant or embedded contexts
  • HTTP-pull transport mode — on-zero now supports stateless HTTP pull as an alternative to WebSocket transport. Uses stock Zero client over standard HTTP, with automatic cookie-based session handling
  • HTTP-pull 409 handling — maps pull 409 responses to InvalidConnectionRequestBaseCookie reset for transparent reconnection
  • createDatabase accepts a pre-built pool — database factory now takes an optional external pg.Pool, enabling connection sharing with non-Zero services

Improvements

  • HTTP-pull transport fixes — accepts cacheURL (corrected from Zero’s deprecated server alias), binds fetch to prevent Illegal invocation in browsers, filters push results to the pushing client like zero-cache
  • Direct-view re-materialization — views correctly re-materialize on resubscribe after React cleanup cycles, preventing stale query results
  • Direct-view destroy ordering — tolerates the owning Zero client closing first without crashing
  • Instance routing — non-inner instance queries route around the ZeroProvider context, so multi-instance sub-queries don’t get lost
  • Zero instance kept alive across React Suspense hide/reveal cycles — prevents unnecessary client teardown during navigation transitions
  • @take-out/helpers de-coupled from tamagui — removes the tamagui dependency from helpers, preventing duplicate tamagui instances in consumer bundles
  • Constants moved off tamagui to remove circular dependencies
  • Svg imports fixed for CJS interop — named imports from react-native-svg now work in dev mode
  • SSG docs page build fails loudly — silent skip now throws, preventing accidental missing pages in production
  • CI reliability — tests gate on real zero-cache HTTP readiness with healthcheck + persistent replica, zero connect retries via page reload
  • Zero connection monitoring — live instance tracking, needs-auth recovery, default error recovery restored
  • Deploy injects real GIT_SHA into containers so /api/health reports the deployed commit
  • Uncloud deploy runs migrations before deploy, verifies Zero publication, stops force-recreating Zero
  • Windows guard for web workers — isWebTouchable access guarded in web-worker contexts
  • Helpers exports ordered with types first for RN consumer resolution
  • Native platform lookup handles web gracefully
  • CI node version check — resolves the real node binary under bun, pins engines.node to ^24.3.0

Upgrades

  • @rocicorp/zero 1.5.0 → 1.6.1
  • Tamagui bumped to 2.1.0 canary
  • One upgraded to latest canary for various bugfixes
  • one/vxrn/@vxrn upgraded to canary 1.17.11

Bug fixes and chores (30)

Week of June 1, 2026

80ae5d10

Features

  • useMutation helper for on-zero — simplifies React access to client and server mutation errors with a clean hook interface
  • Split docs and skills directories — CLI can optionally use separate directories for documentation vs skills, keeping the skill registry focused on actionable scripts

Improvements

  • ensure-zero-sqlite prefers prebuild-install over node-gyp — skips the native build step when a prebuilt binary is available, speeding up installs

Bug fixes and chores (3)

Week of May 25, 2026

0c06a98d

Features

  • Zero upgraded to 1.5 — major release with improved sync performance and reduced memory footprint
  • orez upgraded for Zero 1.5 compatibility — server-side Zero integration stays in sync with the client upgrade

Improvements

  • CI workflow regenerates with literal ZERO_VERSION — env vars in GitHub Actions emit as literal values instead of interpolated references, making workflow files self-contained
  • Safari user-agent check added for browser-specific handling
  • Duplicated on-zero safety — guards against duplicated on-zero packages in the bundle that would cause lost async context from separate module instances

Bug fixes and chores (5)

Week of May 18, 2026

ddb1fbab

Features

  • Hot-reloaded query functions fixed — on-zero now correctly resolves query functions after hot module replacement, so HMR updates to queries take effect without a full page reload

Improvements

  • generate-lite: type union support — the lite generator now correctly handles TypeScript union types in mutation arguments
  • generate-lite: comments and formatting preserved — generated output retains source comments and has cleaner formatting
  • generate-lite: renamed props supported — property renames in mutations are reflected in the generated validators
  • Bad mutator binding fixed — on-zero no longer creates incorrect closure bindings for mutators, preventing runtime errors
  • Demo lite backend seeds only in demo mode — prevents demo seed data from being applied in production

Bug fixes and chores (5)

Week of May 11, 2026

a861eb73

Features

  • Soot support added — on-zero now works with the Soot framework for alternative server architectures
  • orez upgraded to latest — keeps server-side integration current

Improvements

  • Dialog Sheet.ScrollView fix — adapted dialogs let Sheet.ScrollView own the drag gesture, preventing scroll/drag conflicts in modal sheets
  • Query registries generated through package entry — on-zero generate now routes query registries through the package entry point for correct resolution
  • Native Zero auth redirects fixed — focused screens properly handle localhost HTTP redirects for Zero auth flows on native

Upgrades

  • One upgraded to 1.17.2

Bug fixes and chores (5)

Week of May 4, 2026

5547fb33

Features

  • db:migrate now runs generate + migrate in one step — replaces the two-command workflow; db:build added for generate-only use

Improvements

  • Docs updated for new database commands
  • Android production build fixed — error handler crash resolved, native server URL corrected for release builds
  • Skill description length optimized — shorter descriptions in skill listings for better CLI UX
  • Unnecessary log cleanup removed

Upgrades

  • One + vxrn bumped to 1.16.8 — fixes env define harvest for SSR
  • Tamagui upgraded to stable RC — moves off canary to a release candidate for production stability
  • One upgraded for redirect race fix on web routing

Bug fixes and chores (7)

Week of April 27, 2026

6bb1e7b9

Upgrades

  • Various routing fixes in One — improved navigation reliability and redirect handling
  • Various RNGH fixes in new Tamagui — React Native Gesture Handler compatibility improvements with the latest Tamagui build

Bug fixes and chores (2)

Week of April 20, 2026

25d4b53f

Features

  • Mise recommended for bun version management — bootstrap now suggests mise for managing bun versions, fixing issues with system package managers providing outdated builds

Improvements

  • freshDev env sync — environment is automatically synced in dev mode on startup, keeping .env current without manual env:update runs
  • Node version check uses semver.satisfies — the preflight check now accepts engines.node range expressions (e.g. ^24.3.0) instead of requiring exact version match

Bug fixes and chores (1)

Week of April 6, 2026

6fa7f24c

Features

  • deploy-lock self-diagnosing locks — locks now detect when they’re stuck and provide actionable diagnostics, with a cleanup callback for safe recovery
  • ensure-zero-sqlite script added for reliable native zero-sqlite module builds, handling prebuild-install, node-gyp fallback, and architecture detection

Improvements

  • @take-out/env package hardened for production: versions-aware config, explicit override preservation in freshdev mode, server/browser safety tightened, and override-env-mode support so tests and scripts can opt into specific environment profiles without clobbering production defaults
  • @take-out/database: preserve the original migration error when ROLLBACK TO SAVEPOINT fails — previously a misleading “25P01: ROLLBACK TO SAVEPOINT can only be used in transaction blocks” replaced the real error during pglite wire-protocol proxy sessions, wasting CI debugging time
  • Env parsing fixed for unquoted dotenv values — backslash characters in values are no longer doubled, preventing key material corruption
  • Postinstall builds packages for watch mode compatibility — generated code stays in sync for drizzle-zero watch without manual rebuilds
  • Lite mode prebuild fixed to avoid dist race with on-db-ready migrate
  • RUN environment variable no longer propagated to sub-processes, preventing accidental sub-env execution

Upgrades

  • Tamagui upgraded (multiple canary bumps including new canary, stable RC preparation)
  • One upgraded to canary with latest fixes

Bug fixes and chores (5)

See early 2026 changes for previous updates.

Edit this page on GitHub.