Skip to content

Add renderer memoization and reconciliation fixes#125

Open
scorsin-oai wants to merge 1 commit into
Snapchat:mainfrom
scorsin-oai:simon/260723-renderer-memoization
Open

Add renderer memoization and reconciliation fixes#125
scorsin-oai wants to merge 1 commit into
Snapchat:mainfrom
scorsin-oai:simon/260723-renderer-memoization

Conversation

@scorsin-oai

Copy link
Copy Markdown
Collaborator

Description

This change adds the remember() API which works kind of like React's useMemo() or Jetpack Compose remember(). Unlike React, this API doesn't just work on the nearest ancestor component, it works on the nearest node that is at the top,.

It also fixes a reconcilation bug which could cause duplicate keys when it shouldn't, and it fixes a crash that could occur when a node has its viewClass being changed.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • Documentation improvement
  • Performance optimization
  • Test improvement
  • Other (please describe)

Testing

  • Tests pass locally (bazel test //...)
  • Added/updated tests for changes (if applicable)
  • Tested on multiple platforms (iOS/Android/Web/macOS as applicable)
  • Manual testing performed (describe below)

Testing Details

Checklist

  • Code follows project style guidelines
  • Documentation updated (if needed)
  • No breaking changes (or documented in description)
  • Commit messages follow conventional format
  • No secrets, API keys, or internal URLs included

Related Issues

Additional Context

@github-actions github-actions Bot added the area/runtime Valdi runtime (C++/native) label Jul 23, 2026
@github-actions

Copy link
Copy Markdown

🎉 Bazel & CI Test Results

Test Suite Result
Valdi Smoke Tests ✅ success
Linux: Build & Export ✅ success
Snapshot Tests ✅ success
Linux: C++ Tests ✅ success
macOS: C++ & Platform Tests ✅ success
Linux: Build Compiler ✅ success
API Surface Check ✅ success

All Bazel configuration and CI tests passed!

The build system and core tooling are working correctly.

🚀 Bazel remote cache is now enabled - future builds will be faster!

Workflow: Valdi CI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/runtime Valdi runtime (C++/native)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant