PostHog JS continued optimizing for bundle size and tree-shaking while strengthening reliability across recording and error handling. The browser SDK shipped improvements to memory management in session replay, particularly fixing canvas recording leaks on Safari and updating rrweb dependencies. Core SDK work focused on feature flag caching, session recording sampling, and better error detection—including a new rrweb_error status when session recording initialization fails silently. On the backend, the team added NestJS integration with context propagation, introduced feature_flag_cache_ttl_ms to prevent stale flag values, and expanded feature flag evaluation with semver comparison operators. Tree-shaking support expanded across surveys, toolbar, exceptions, conversations, logs, and experiments, with new configuration options like advanced_feature_flags_dedup_per_session and serviceName for logs. Infrastructure work included fixes for sourcemap upload via stdin and better handling of OpenTelemetry exports that don't require optional dependencies to be installed.
February pushed recorder stability and feature flag control. The SDK waited for fresh config before recording starts and added a new recorder status for better visibility, while two new configuration options—feature_flag_cache_ttl_ms and remote_config_refresh_interval_ms—let developers prevent stale flag values in long-running sessions. Device detection improved to correctly identify Android tablets sending desktop user agents via Client Hints, product tours gained device-type targeting, and the Node SDK introduced context-sensitive flag methods that read distinctId from async context instead of requiring it as a parameter.