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
ControlQueriescomponent 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
setAuthDataexported 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-allflag for CLI script groups - automatically selects all scripts in a group without prompting/report-issuecommand for filing issues with rich system context- database indexes added for common query patterns, plus a
zero/analyze-indexesscript for finding missing indexes - mutation validators support in zero server configuration
Improvements
runandrun-allscripts rewritten with deep testing, proper process cleanup, and no sub-process spawning for more reliable signal handling@take-out/runpackage 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
authDataargument added to zero query with async local context for concurrent request safety - on-zero
getAuth()andensureAuth()helpers exported for easier access to auth data in queries and mutations - on-zero
zeroServer.mutateauto-resolves authData so you no longer need to pass it manually - on-zero
awaitAsyncTasksoption forzeroServer.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
useAsyncEffectloop warning now includes function name, deps, and component stack for easier debugging- migrations set
search_pathto 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 runkeyboard 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 skillscommand extracted to dedicated script with expanded skill management functionality--ptymode forrun-allcommand 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.shscript 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-inrun()contextrun()function for one-shot non-reactive Zero queries - defaults to server fetch ('complete'), pass'cached'for local-only readsusePermissionnow supportspermissionStrategyoption - 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
usePermissionmoved 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
--aftercommand 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
--afternever triggers file writes in the source tree, avoiding watcher feedback loops with linting - nested
serverWherecalls 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 viatx.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/toops/(avoids conflict with bun’s built-inbun cicommand), andops cirenamed toops release - CI pipeline split into separate
test.tsandrelease.ts- test runner extracted for independent use, release just orchestrates test + build + deploy - Env vars simplified -
VITE_PUBLIC_ZERO_SERVERandWEB_DOMAIN/ZERO_DOMAINreplaced with justVITE_ZERO_HOSTNAMEandVITE_WEB_HOSTNAME(hostname only, protocol constructed at runtime) - Zero env vars centralized through
package.jsonenv defaults -> auto-generated.env-> dockerenv_fileinstead of hardcoded values in docker-compose run-frontend-dev.tsmerged intorun-frontend.ts --devflag, 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.xyzimport 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:updatenow resolves$dep:version references as fallbacks in CI config, so CI no longer depends on manually-set GitHub secrets for dependency versionsenv-server.tspath resolution now tries bothsrc/constants/andsrc/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.migrationsexplicitly to avoid conflicts when a pg schema matching the db user exists - React 19.1
captureOwnerStackused instead of broken__CLIENT_INTERNALSinternal 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
peerDependenciesMetaadded for optional react and @rocicorp/zero in helpersupdate-local-envrenamed togenerate-envsince it’s used in CI too, not just locallysync-promptrenamed tosync-repofor 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-allCLI command runs multiple package.json scripts in parallel with--flags=lastoption to forward args only to the final scriptargs()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-jwksscript 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-zeropackage published to npm - removed local workspace version in favor of publishedon-zeropackage
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
upandupdate-depsscripts withupgradeSetsconfig 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=layoutconstraint - Profile page loading simplified to subtle spinner
- Menu animations improved with
quickestLessBouncytransition - 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-schemascript 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/nativepackage with crypto polyfill for React Native- BlurView component with native expo-blur integration
- Block filtering with
notBlockedByViewerserverWhere - 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-takeoutpackage for bootstrapping new Takeout projects- Web onboarding UI with multi-step slides and configuration
- Protected component (from One) for cleaner authentication routing
- CLI
--autoand--printflags 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.tsxfiles 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
--stdinflag 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.