Repository navigation
feat: add independent flex shrink for Web and MyGo - #347
Merged
Merged
Conversation
Contributor
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
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.
Summary
Expose
row/column/box ~shrink:0.so direct layout children can retain their natural extent without abusinggrow:0(which also changes auto basis in MyGo).ShrinkValue/shrinkwire property: finite nonnegative floats, only row/column/box; omitted/removed means the existing factor 1. Grow and basis are unchanged.flex-shrinkand MyGo to the already-pinned SDK'sElement.Shrink. Generic/SwiftUI/Kotlin opt-in is explicitly rejected, including direct Apple/Android standard wire patches; no raw extension escape is added.Originally based on public
2475de1e9fecf3c987b3d07617699dd90c21ec73; merge commit790ca9e0e6a807368a7b61db49021ed11d178f58incorporates public main347de2f7a22968e2a54c4504cfa07fe3800f97a6without rewriting either history. The resolved constructors/schema retain both shrink and focus-within observation, including both unsupported-host guards. Generated artifacts and the three affected capability hashes were regenerated from the combined contract.Current-head local validation: OCaml
@all @web, 235 core tests and 8 portable-service tests; schema tooling 12 tests; Web build + 160 tests; MyGo race tests, vet and build; andswift build --build-testsall passed. Component/MyGo freshness checks andgit diff --checkpassed. Current-head remote CI for merge commit790ca9e0e6a807368a7b61db49021ed11d178f58is complete: 16 checks passed, 0 failed, 0 pending, 0 skipped, including Apple, Android and all three MyGo platforms. This is the new merge head's result, not the earlier head's CI.The original single shared contract case covers kind/value/profile admission; an existing native property-removal scenario proves default shrink -> factor 0 -> removal and basis preservation, with a red run when the new native mapping is absent. No additional tests, helpers or fixtures were introduced for conflict resolution.
Historical Swift caveat: the original local
c6f18c26full-suite attempt had one unresolvedfullWidthIdentifiersfocus/pinned-row failure (212 tests, one issue); its focused base run passed, so that attempt did not prove a baseline failure. The suite includes AppKit windows and should not have been run under this task's no-GUI limit; further local window tests were stopped. Subsequent pure retained sparse-contract tests passed 8/8 on that head and exact base, but do not replace GUI evidence. The merge includes main's separate sparse-focus recovery fix; this conflict-resolution task only compiled Swift tests and did not rerun AppKit or establish the original failure's cause. Application GUI acceptance was not performed.Link to Devin session: https://app.devin.ai/sessions/eccad85c243745debb033bc62ba68c4e
Open in Devin Desktop: https://app.devin.ai/desktop/session/eccad85c243745debb033bc62ba68c4e?variant=devin
Requested by: @tiensonqin