Merged
Conversation
## Summary
Configure the release build type in the Tutorial reference app to use
debug signing, fixing build failures when running release builds.
## Changes
- **reference-apps/tutorial/app/build.gradle.kts**: Added `signingConfig
= signingConfigs.getByName("debug")` to the release build type.
## Testing
- Verified Gradle build succeeds for the tutorial app.
Fixes #436
## Summary Fix `findProgressMarkerDescendant()` returning the wrong node when the progress marker is nested deeper than one level in component instances. ## Root Cause When the progress marker was found recursively (not as a direct child), the function returned the intermediate `child` node instead of the actual `childProgressMarkerDescendant`. This caused incorrect alignment calculations. ## Changes - **designcompose/.../squoosh/SquooshResolvedNode.kt**: Return `childProgressMarkerDescendant` instead of `child`. ## Testing - Verified Kotlin compilation succeeds (BUILD SUCCESSFUL) Fixes #291
## Summary Fix margin calculation for rotated nodes by using the pre-rotation `node.size` instead of the post-rotation AABB bounding box dimensions. ## Changes - **crates/dc_figma_import/src/transform_flexbox.rs**: Use `node.size` for constraint margin math on rotated nodes; added regression test. ## Testing - New regression test added - All 36 existing tests pass Fixes #244
This commit bumps the version across all Gradle (`gradle/libs.versions.toml`) and Cargo configuration files to `0.39.0` (`0.39.0-SNAPSHOT` in Gradle). It also unifies the `dc_squoosh_animation` and `dc_squoosh_parser` crates under the workspace dependencies. Changes and issues addressed since 0.38.4: - Enhance LiveUpdate feature (Issues #2282, #2379) - Add cargo publish steps to GitHub release workflow (Issues #2435, #2436) - Squoosh Designer Plugin: Figma plugin for orchestrating layout animations (Issue #2402) - Replace println!/eprintln! with Rust log API in library code (Issues #2403, #2411) - Update dc_figma_import README to reflect current architecture (Issues #426, #2427) - Add comprehensive unit tests for mergeStyles function (Issues #1963, #2416) - Avoid double key events during animated transitions (Issues #1514, #2417) - Clean up unwrap() calls in dc_jni crate (Issues #670, #2415) - Security: Update rustls-webpki 0.103.10 -> 0.103.12 (Issue #2434) - Document supported Android SDK levels (Issues #163, #2429) - Restore Modifier customization support in squoosh renderer (Issues #2292, #2426) - Handle unknown Figma features in deserialization (Issues #2305, #2414) - Add adaptive polling with exponential backoff for LiveUpdate (Issues #2282, #2423) - Add comprehensive Rust layout unit tests (Issues #405, #2413) - Update JNI dependency to 0.22.4 and refactor dc_jni (Issue #2432) - Enable CodeQL security scanning (Issues #926, #2412) - Prevent Design Switcher from briefly showing 'Offline' (Issues #142, #2421) - Stroke gradients account for stroke thickness (Issues #1549, #2420) - Add performance logging for high-cost fetch operations (Issues #281, #2419) - Remove unclaimed Open VSX extension recommendation (Issue #2431) - Add assembleRelease to CI to catch minified build issues (Issues #435, #2425) - Deprecate and remove publish_designcompose.sh script (Issue #2433) - Clarify visibility documentation — parameter name is flexible (Issues #660, #2428) - Add JDK installation instructions to Getting Started docs (Issues #707, #2424) - Add security check for Figma token file permissions (Issues #249, #2418) - Fix whilePressing interaction getting stuck on multi-touch drag (Issue #2422) - Fix SquooshRoot infinite recomposition and freeze on rapid tap (Issue #2409)
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## stable/0.39.x #2447 +/- ##
===================================================
+ Coverage 47.53% 49.27% +1.73%
Complexity 19 19
===================================================
Files 44 44
Lines 5070 5155 +85
Branches 51 51
===================================================
+ Hits 2410 2540 +130
+ Misses 2646 2601 -45
Partials 14 14
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Snapshot diff report vs base branch: stable/0.39.x |
## Summary Fix text brush customizations (from `setBrush`/`setBrushFunction`) not being applied when the underlying Compose State changes. The `TextMeasureCache` was only comparing `text` and `customStyle` when deciding whether to reuse a cached entry, completely ignoring brush customizations. Animated brushes driven by State were never invalidated. ## Changes - **designcompose/.../squoosh/SquooshText.kt**: - Moved `customBrush` evaluation before the cache check - Added `customBrush` field to `TextMeasureCache.Entry` - Added `customBrush` comparison to cache validity check ## Testing - Verified Kotlin compilation succeeds (BUILD SUCCESSFUL) Fixes #572
## Summary Fix the design switcher being hidden behind overlay composables (modals, bottom sheets, etc.). ## Root Cause `designSwitcher()` was rendered BEFORE the overlay rendering loop. Overlays with `Modifier.fillMaxSize()` were drawn on top of the switcher, making it completely invisible and inaccessible. ## Changes - **designcompose/.../squoosh/SquooshRoot.kt**: Move `designSwitcher()` to AFTER the overlay rendering loop so it's always the topmost z-order element. ## Testing - Verified Kotlin compilation succeeds (BUILD SUCCESSFUL) Fixes #154
#2441) ## Summary Verify that absolute positioning within AutoLayout (flex) containers is correctly supported end-to-end. The Taffy layout engine and Figma import pipeline already handle this correctly — this PR adds comprehensive regression tests to prevent future regressions. ## Changes - **crates/dc_layout/src/layout_manager.rs**: Added `test_absolute_position_in_autolayout` proving absolute children use inset offsets - **crates/dc_figma_import/src/transform_flexbox.rs**: Added `test_absolute_position_in_autolayout_import` verifying correct import ## Testing - 45/45 layout tests pass - 37/37 import tests pass Fixes #175
…hLayer (#2440) ## Summary Fix placement of replacement content composables that have rotation transforms. The squoosh layout was using `placeRelative` which doesn't honor rotation, causing misalignment. ## Changes - **designcompose/.../squoosh/SquooshRoot.kt**: Use `placeRelativeWithLayer(rotationZ = ...)` for replacement composables via matrix `decompose()`. ## Testing - Verified Kotlin compilation succeeds (BUILD SUCCESSFUL) Fixes #1279
## Summary Fix constraint preservation when replacement content frames (nodes without parent context) are imported from Figma, ensuring their layout constraints are not lost during the import pipeline. ## Changes - **crates/dc_figma_import/src/transform_flexbox.rs**: Preserve constraint types for replacement content; added regression tests. ## Testing - 2 new integration tests added - All 36 existing tests pass Fixes #341
) ## Summary Fix DesignDoc expanding to full screen size by constraining the reported layout dimensions to the parent's constraint bounds. `squooshLayout()` was reporting the raw computed Figma design size to Compose without constraining it. When placed inside a Column or other container, it consumed all available space and prevented sibling composables from being visible. ## Changes - **designcompose/.../squoosh/SquooshRoot.kt**: Pass constraints to `squooshLayout()` and use `coerceIn()` to clamp reported width/height to the parent's min/max constraint bounds. ## Testing - Verified Kotlin compilation succeeds (BUILD SUCCESSFUL) Fixes #279
Updates the Masks golden screenshot to match the new rendering behavior from the `coerceAtMost` layout constraint change in `SquooshRoot.squooshLayout()`. The layout capping correctly constrains DesignDoc reported size to parent constraints, which slightly changes the Masks example rendering. This is expected and correct behavior. Related: #279, PR #2442
anshu10sep
approved these changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Create v0.39.0-RC02
v0.39.0-RC01(#2446)
This commit bumps the version across all Gradle
(
gradle/libs.versions.toml) and Cargo configuration files to0.39.0(
0.39.0-SNAPSHOTin Gradle). It also unifies thedc_squoosh_animationanddc_squoosh_parsercrates under theworkspace dependencies.
Changes and issues addressed since 0.38.4:
Add cargo publish steps to GitHub release workflow (Issue #2435) #2436)
animations (Issue Squoosh Designer Plugin: Figma plugin for orchestrating layout animations #2402)
Use the rust log API instead of print/eprint #2403, Fix #2403: Replace println!/eprintln! with Rust log API in library code #2411)
Update readme for Figma import #426, Fix #426: Update dc_figma_import README to reflect current architecture #2427)
Fix #1963: Add comprehensive unit tests for mergeStyles function #2416)
Fix #1514: Avoid double key events during animated transitions #2417)
Modifier customization gone? #2292, Fix #2292: Restore Modifier customization support in squoosh renderer #2426)
Allow auto pause and resume functionality for LiveUpdate. #2282, Fix #2282: Add adaptive polling with exponential backoff for LiveUpdate #2423)
0.22.4and refactordc_jni#2432)Fix #142: Prevent Design Switcher from briefly showing 'Offline' #2421)
Fix #281: Add performance logging for high-cost fetch operations #2419)
Fix #435: Add assembleRelease to CI to catch minified build issues #2425)
The visibility documentation is unclear #660, Fix #660: Clarify visibility documentation — parameter name is flexible #2428)
Add instructions for installing the correct JDK for command line Gradle builds #707, Fix #707: Add JDK installation instructions to Getting Started docs #2424)
Fix #249: Add security check for Figma token file permissions #2418)
Fix whilePressing interaction getting stuck on multi-touch drag #2422)
Fix SquooshRoot infinite recomposition and freeze on rapid tap #2409)