wwwwwwwwwwwwwwwwwww

Changelog

Weekly updates and changes to Takeout

Week of March 2, 2026

0ca34457

Features

  • on-zero deep TypeScript to validator generation - automatically generates runtime validators from your mutation argument types, with full support for nested objects, arrays, unions, and optional fields
  • on-zero ControlQueries component for disabling query subtrees - wrap parts of your component tree to conditionally disable all Zero queries underneath
  • on-zero getQuery() for accessing raw query objects outside React components
  • on-zero setAuthData exported from public API for manual auth state control
  • on-zero dynamic environment state replaces static isServer detection, fixing edge cases where server/client detection was wrong
  • --default-all flag for CLI script groups - automatically selects all scripts in a group without prompting
  • /report-issue command for filing issues with rich system context
  • database indexes added for common query patterns, plus a zero/analyze-indexes script for finding missing indexes
  • mutation validators support in zero server configuration

Improvements

  • run and run-all scripts rewritten with deep testing, proper process cleanup, and no sub-process spawning for more reliable signal handling
  • @take-out/run package extracted from scripts for cleaner separation of process management concerns
  • on-zero models can now omit mutators entirely for read-only tables
  • on-zero HMR boundary moved from generated code to vite plugin, so generated file changes no longer trigger full page reloads
  • integration tests stabilized with API-based login instead of UI-driven login and proper wait conditions
  • uncloud deploy containers (migrate, minio-init) kept alive with healthchecks so dependent services don’t start too early
  • PTY runner kills entire process group to prevent orphaned processes
  • SIGHUP handled to prevent orphaned processes when terminal closes
  • on-zero crash-prevention added to postgres error handling in zero server

Bug fixes and chores (12)

Week of February 23, 2026

cec96db5

Features

  • on-zero authData argument added to zero query with async local context for concurrent request safety
  • on-zero getAuth() and ensureAuth() helpers exported for easier access to auth data in queries and mutations
  • on-zero zeroServer.mutate auto-resolves authData so you no longer need to pass it manually
  • on-zero awaitAsyncTasks option for zeroServer.mutate - async tasks now fire-and-forget by default to match the mutate API endpoint behavior
  • cmd().env() chainable for setting environment variables in CLI scripts
  • dev CLI docs added covering keyboard shortcuts and process focusing

Improvements

  • on-zero dev mode performance improved by disabling expensive JSON stringify for query key comparison
  • drizzle migration journal now updated when renaming migration numbers, preventing out-of-sync state
  • context menu styling improved for post actions and avatar menu
  • better terminal restore from TTY with improved process exit handling
  • smoother handoff back to shell after CLI process exit
  • useAsyncEffect loop warning now includes function name, deps, and component stack for easier debugging
  • migrations set search_path to public explicitly, fixing issues when a pg schema matching the db user exists
  • EAS build config updated to include bun version 1.3.9

Bug fixes and chores (8)

Week of February 17, 2026

060abdbf

Features

  • iOS create post widget using Voltra for quick posting from home screen
  • Better Zero documentation in skills

Improvements

  • PTY runner properly restores terminal to cooked mode on exit, preventing broken terminal state after Ctrl+C
  • Migration runner only ignores actual duplicate key errors, not all constraint violations

Bug fixes and chores (3)

Week of February 10, 2026

bb43e47f

Features

  • tko run keyboard shortcuts for restarting and killing individual processes — letter-based shortcuts auto-computed from process labels, stdin forwarding to focused process
  • iOS simulator skill added with 21 scripts for building, testing, accessibility auditing, gesture/keyboard automation, and simulator lifecycle management
  • tko skills command extracted to dedicated script with expanded skill management functionality
  • --pty mode for run-all command provides interactive dashboard with process management
  • on-zero server validation hooks with configurable admin bypass for custom mutation validation
  • Shared deploy health helpers with restart loop detection for safer deployments
  • Migration timeouts for easier debugging of hanging migrations
  • bootstrap.sh script for reliable first-time project setup

Upgrades

  • Tamagui upgraded to 2.0 RC11
  • One upgraded to 1.6.13
  • Bun upgraded to v1.3.9

Improvements

  • Process exit cleanup simplified from recursive pgrep tree-walking to process groups (kill -pid), fixing hangs in complex multi-process exit scenarios
  • better-auth-utils passes session token in auth header based on session presence instead of being gated on the JWT mode flag
  • on-zero HMR support with unified Vite and CLI plugins for faster development iteration
  • on-zero cleanup and unification of Vite and CLI code generation
  • Auth/mutator requests only logged on error or when DEBUG is set, reducing log noise
  • PTY resize errors caught gracefully when file descriptor already closed
  • Exclude init containers from restart loop detection in health checks
  • SSH retry logic with 3 attempts and 5s delay for more reliable deployments
  • Cross-subdomain cookies only enabled in production, fixing local development auth
  • Migration savepoint resilience for lost tracking records
  • Sanitized savepoint names for migrations with hyphens

Bug fixes and chores (22)

Week of February 3, 2026

0918f5d1

Features

  • Push notification system - notification model, queries, server actions, device registration, and in-app notification list with real-time updates
  • Notification listener and emitter architecture for decoupled notification handling across the app
  • Notification prompt flow with persistent storage to avoid re-prompting users
  • Intercepting routes for feed detail - posts open in a modal overlay on web while preserving direct URL navigation
  • Push notification toggle in settings
  • cmd() script helper - tagged template API for cleaner CLI scripts with auto-generated --help, typed argument parsing, and built-in run() context
  • run() function for one-shot non-reactive Zero queries - defaults to server fetch ('complete'), pass 'cached' for local-only reads
  • usePermission now supports permissionStrategy option - choose between 'optimistic' (evaluate client-side), 'optimistic-deny' (false until server confirms), or 'optimistic-allow' (true until server confirms)
  • on-zero run() works in both queries and mutations, accepting regular query functions alongside synced queries
  • Local MCP server config added (.claude/mcp.json) for bun-based tooling setup
  • Burnt and Zeego native integrations added to setup
  • Type-aware oxlint via oxlint-tsgolint - linter now uses TypeScript type information for more accurate rules
  • Dev-only docs support in skills generator - documentation can be flagged as dev-only so it’s available during development but excluded from production builds

Upgrades

  • Tamagui upgraded to 2.0 RC6 with theme and font refinements
  • One upgraded to 1.6.1 with HTML cache fixes
  • Zero upgraded to 0.25.12 with less noisy logging

Improvements

  • Auth simplified - removed JWT token validation (leftover from Tauri integration), streamlined to session-based auth with cleaner Zero push/pull handlers
  • on-zero permissions no longer require explicit export - permissions are now read directly from the model definition
  • on-zero usePermission moved to server-side named query to work with Zero 0.25’s materialized query model - each table gets its own materialized permission view instead of one shared query
  • on-zero generate --after command now runs on initial watch startup and scopes formatting to only generated files, preventing watcher feedback loops
  • on-zero generate uses a cache directory for output so --after never triggers file writes in the source tree, avoiding watcher feedback loops with linting
  • nested serverWhere calls inside permission builders now evaluate correctly on the client - previously inner serverWhere was no-op’d, breaking compound permission checks
  • zeroServer.query() now actually executes the query via tx.run() instead of returning the query builder
  • all scripts rewritten to use cmd() API - 71 files migrated from raw exec/spawn to typed, self-documenting commands with automatic help generation
  • scripts directory renamed from ci/ to ops/ (avoids conflict with bun’s built-in bun ci command), and ops ci renamed to ops release
  • CI pipeline split into separate test.ts and release.ts - test runner extracted for independent use, release just orchestrates test + build + deploy
  • Env vars simplified - VITE_PUBLIC_ZERO_SERVER and WEB_DOMAIN/ZERO_DOMAIN replaced with just VITE_ZERO_HOSTNAME and VITE_WEB_HOSTNAME (hostname only, protocol constructed at runtime)
  • Zero env vars centralized through package.json env defaults -> auto-generated .env -> docker env_file instead of hardcoded values in docker-compose
  • run-frontend-dev.ts merged into run-frontend.ts --dev flag, eliminating duplicate script
  • CLI startup made faster by lazy-importing dependencies instead of importing everything up-front
  • package dependencies made lighter - moved to optional peerDependencies so consumers don’t install everything
  • helpers moved into packages/scripts/ for reuse across projects (github-tail, multipass, parse-env-file, process-compose-env, ssh, uncloud helpers)
  • consistent fs.xyz import pattern adopted across all scripts instead of mixed destructured imports
  • Zero version sync extracted to shared script and removed from env pipeline to simplify postinstall
  • env:update now resolves $dep: version references as fallbacks in CI config, so CI no longer depends on manually-set GitHub secrets for dependency versions
  • env-server.ts path resolution now tries both src/constants/ and src/server/ locations for compatibility across project structures
  • compose env processing improved - handles multi-line values (PEM keys) and quotes values containing yaml-breaking special characters (:, #, {, etc.)
  • migration schema resolution uses public.migrations explicitly to avoid conflicts when a pg schema matching the db user exists
  • React 19.1 captureOwnerStack used instead of broken __CLIENT_INTERNALS internal for component stack traces
  • release publish now pins workspace:* deps to actual versions during pack and restores them after, preventing broken publishes
  • permissions integration test suite added covering mutation guards and query-based permission checks
  • HotUpdater enhanced with dynamic server URL handling and crash history tracking API
  • Hot-updater debug info component shows update status, bundle ID, and version info in settings on native
  • GradientBlurView and PageLayout split into separate native/web files to prevent native deps from leaking into web
  • TabBar refactored to use View instead of Animated.View with improved glass effect border radius
  • ProfileEditPage cleaned up - removed transition effects, improved button accessibility
  • Comment flow integration test added for full create/verify/cleanup lifecycle
  • Feed detail page refactored with cleaner layout
  • Default animation durations removed from animationsApp config
  • Default username display changed from “No name” to “Unknown”
  • Stricter tsconfig across all packages catches more type issues
  • Dev cleanup script added for robust process and port cleanup
  • peerDependenciesMeta added for optional react and @rocicorp/zero in helpers
  • update-local-env renamed to generate-env since it’s used in CI too, not just locally
  • sync-prompt renamed to sync-repo for clarity

Bug fixes and chores (45)

Week of January 27, 2026

d22f54b3

Features

  • Delete post action in post menu
  • Content moderation for launch - AWS Rekognition image moderation blocks nudity, violence, and hate symbols on upload, plus profanity filter for posts/comments with leetspeak detection
  • Rate limiting for launch - 30 mutations per minute per user via Zero config
  • run-all CLI command runs multiple package.json scripts in parallel with --flags=last option to forward args only to the final script
  • args() helper for cleaner script argument parsing across all CLI scripts
  • Demo reset script to restore demo database to seed state
  • JWKS error detection and warning with db:clear-jwks script to fix auth secret mismatches
  • Auto-sync Zero version to env on postinstall

Upgrades

  • Tamagui upgraded to 2.0 RC with cleaner config setup and improved build system
  • One upgraded to 1.4.8 with better dev tools behavior
  • Zero upgraded to 0.25.11 with bug fixes
  • over-zero package published to npm - removed local workspace version in favor of published on-zero package

Improvements

  • Faster dev compilation - Tamagui compiler now disabled entirely in dev mode instead of running with extraction disabled
  • Unified login page - removed separate native file, consolidated web/native handling
  • Unified search page - removed separate native file, shared responsive implementation
  • Unified up and update-deps scripts with upgradeSets config for cleaner package upgrades
  • HeroSection and MainHeader responsive improvements
  • Fixed feed/profile overlay bug on web - profile pages now properly replace feed instead of floating on top
  • Popover animations restored by removing contain=layout constraint
  • Profile page loading simplified to subtle spinner
  • Menu animations improved with quickestLessBouncy transition
  • Disabled mobile tap highlight for cleaner touch feedback
  • Zero production tuning docs added with performance recommendations
  • Button and Tooltip component documentation added
  • Configurable ports for multi-project use - all scripts and docker-compose now read from .env.development
  • Migrations consolidated into single initial schema with new db:reset-schema script for clean resets
  • Script helpers moved off bun-specific APIs to standard node:child_process for broader compatibility
  • Splash animation updated to use rotateZ
  • Improved icon script to support additional font weights
  • Smarter docs skill linking with auto-detection
  • CI fails faster on errors

Bug fixes and chores (52)

Week of January 20, 2026

29254c43

Features

  • @take-out/native package with crypto polyfill for React Native
  • BlurView component with native expo-blur integration
  • Block filtering with notBlockedByViewer serverWhere - blocked users’ posts never sync to client
  • FeedContent component with paginated posts and AnimatePresence transitions
  • PostCommentPreview for inline comment display on posts
  • Image dimensions stored in database for better layout calculations
  • CLI script caching system for faster script discovery
  • Keyboard-aware feed detail page with smooth scroll-to-end on native
  • Dynamic OG image generation for index and docs pages
  • Bottom tab bar with responsive layout for mobile
  • Floating create button for quick post creation
  • Settings page sidebar layout with mobile-specific design
  • Mock AI chat UI with native input component
  • Docs menu on mobile for better navigation
  • Scrollbar color customization
  • HeadInfo titles added to logged-in pages
  • Enhanced comment input with better keyboard handling and interaction
  • Global run() helper for one-shot Zero queries without React hooks
  • create-takeout package for bootstrapping new Takeout projects
  • Web onboarding UI with multi-step slides and configuration
  • Protected component (from One) for cleaner authentication routing
  • CLI --auto and --print flags for sync command automation
  • Onboarding storage for persisting user progress

Upgrades

  • Tamagui upgraded to 2.0 canary with improved Select, animation fixes, RNGH-powered press events, and better sheet handling
  • One upgraded to 1.2.81 with native devtools fix

Improvements

  • React Compiler enabled in Metro for native builds with memoized components
  • Flattened docs directory structure for better organization
  • Consolidated native layout files - removed duplicate _layout.native.tsx files across routes
  • Simplified auth signup flow - removed separate native OTP and method pages
  • Post queries now include user relation by default
  • Redesigned native login page with haptic feedback
  • Faster dev mode by disabling React compiler during development
  • Env sync now supports variable filtering and blocks placeholder values
  • Fixed auth state race condition that caused redirect flicker on page reload
  • Profile page layout with max width and centering
  • Responsive site header improvements
  • ScrollHeader optimized for mobile with improved shadow logic
  • Dialog and sheet component refinements
  • Gallery uses Pressable for close action fixing real device issues
  • Standardized transition timing to 200ms across components
  • Sticky docs sidebar for better navigation
  • Moved to new headless Stack API for cleaner native navigation
  • Removed Animated from react-native-web-lite for reduced bundle size
  • Responsive auth layout on web with dark theme support
  • Improved shimmer loading states to prevent flickering
  • Redesigned landing page hero section with memoized terminal components
  • Improved CLI skills generation with auto-linking to docs
  • Avatar now links directly to profile on web (replaced popover menu)
  • Cleaned up unused theme files and vite config
  • Better testing documentation in README

Bug fixes and chores (85)

Week of January 13, 2026

fd6fee7

Features

  • AnimatedBlurHeader component for native navigation
  • AI and search tabs with corresponding layouts and pages
  • Enhanced TabBar with animated indicator

Upgrades

  • Tamagui upgraded to v2 canary with new transition API
  • One upgraded to 1.2.51+ with better dev tools injection

Improvements

  • Migrated animation prop to transition for Tamagui 2.0 compatibility
  • Updated docs layout and components for Tamagui v2
  • Improved Lighthouse scores by removing component themes and custom fonts
  • Reduced bundle size by using react-native-web-lite instead of react-native-web
  • Downgraded docsearch to v3 (453KB → 109KB savings)
  • Used expo-image for native Image component
  • Consolidated Tamagui imports from subpackages
  • Fixed Reanimated leaking into web bundle
  • Reduced Zero client logging noise

Bug fixes and chores (18)

Week of January 6, 2026

6d6b83f

Features

  • HotUpdater resolver for native hot updates
  • CLI --stdin flag for interactive terminal mode with One dev server
  • New background and logo assets
  • React Native squircle support for PostCard
  • Blur background image asset

Upgrades

  • Zero upgraded to latest
  • Tamagui upgraded to v2 canary (1.144.1+)
  • One upgraded to 1.2.51 with fixes

Improvements

  • Improved DocSearch styles and filtering logic
  • Enhanced scroll behavior and heading components
  • Updated input handling to use onChange for form fields

Bug fixes and chores (22)

Week of December 30, 2025

e08600e

Improvements

  • Enhanced AI input and gradient components
  • Various visual refinements to GradientBackground and FeedDropdown
  • Fixed native hot-update breaking in patch version changes
  • Fixed settings items unclickable on native
  • Fixed localStorage crash during web build

Bug fixes and chores (8)

See 2025 changes for older updates.

Edit this page on GitHub.