release: 1.5.2 - #201
Conversation
`SKILL.md` frontmatter went to `version: 2.14.0` with the `h-full` content change, but the `<!-- fluttersdk_wind 1.5.x | Skill vN (date) -->` marker on line 8 stayed at `v2.13.2 (2026-09-07)`. The two have moved together on every skill change since 1.4.x, so the file now states two different versions of itself. The `1.5.x` half is correct as it stands, so this is the skill version and the date only.
One change, `h-full`, and the two `max-*` discards it turned out to be hiding. `h-full` resolved through a `LayoutBuilder`, which cannot answer an intrinsic query, so any `IntrinsicHeight` or `IntrinsicWidth` above it asserted and the limitation was written down on five surfaces with an escape hatch rather than fixed. It is the `WindFullHeightBox` render object now (#200): it renders under an `IntrinsicHeight`, in a `Table` cell and in an `items-stretch` grid cell, and it answers intrinsics by forwarding to its child, so it matches the tallest sibling instead of reporting the screen. `grid` is the last `LayoutBuilder` in the package. The render object also costs one object where the old path cost two, and drops the deferred layout pass with it. Measured in a consumer's broadcast grid at 5000 channels, one eight-scroll session: 840 `_RenderLayoutBuilder` and 840 `RenderFractionallySizedOverflowBox` become 1008 `_RenderFullHeight`, with everything else moving within noise. Expect two visible changes on upgrade. `max-h-*` and `max-w-*` now apply to an `h-full` element where they were silently discarded: `h-full max-h-[120px]` under a `ConstrainedBox(maxHeight: 400)` rendered 400 and renders 120, and `w-1/2 h-full max-w-[100px]` in a 300 pixel parent rendered 150 and renders 100. A TIGHT parent still wins over `max-h-*`, which is the parent stating an exact size rather than the same bug. And an `h-full` element under an `IntrinsicHeight` now matches its tallest sibling where it used to report the screen height. Six surfaces bumped, the patch-release set: `pubspec.yaml`, `example/pubspec.yaml`, the `dartdoc_options.yaml` source-link tag, the `llms.txt` version string, the `CHANGELOG.md` promotion with its two link references, and the `example/pubspec.lock` path-dep entry (produced by `flutter pub get` inside `example/`; the diff is that one line, with no `source: path` churn and the root lockfile untouched). `skills/wind-ui/` needs no version move on a patch: the nine reference H1s, SKILL.md's own H1, the description prefix and the `1.5.x` marker all still read right. The skill's own version went to 2.14.0 with the content change in #200, and the commit before this one moves the marker that was left behind. Gates: `dart analyze` clean, `dart format` no diff, `flutter test` 1782 passing with the one pre-existing skip, `./tool/coverage.sh 90` at 95.2%, and `tool/check-docs.py` 0 issues across 72 doc pages.
|
Warning Review limit reachedNext included review available in 38 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Version surfaces are complete and internally consistent, the gates pass on this tree, and I found nothing to block on. Scope note: this PR carries no What I checked rather than took on trust:
TestsNo behaviour changes here to cover, so nothing new is expected. The suite that covers the base Checks I ran
|
What
Patch release. One change,
h-full, and the twomax-*discards it turned out to be hiding.h-fullresolves at the render layer (perf(w-div): resolve h-full at the render layer, which also makes it intrinsic-safe #200). It went through aLayoutBuilder, which cannot answer an intrinsic query, so anyIntrinsicHeightorIntrinsicWidthabove it assertedLayoutBuilder does not support returning intrinsic dimensions. The limitation was written down on five surfaces with an escape hatch ("use explicith-*instead") rather than fixed. It is theWindFullHeightBoxrender object now, which answers intrinsics by forwarding to its child, so it renders under anIntrinsicHeight, in aTablecell and in anitems-stretchgrid cell.gridis the lastLayoutBuilderin the package.max-h-*andmax-w-*apply to anh-fullelement (perf(w-div): resolve h-full at the render layer, which also makes it intrinsic-safe #200). Both were discarded by the same mechanism in two places: the cap arrived as aConstrainedBoxwhose additional constraintBoxConstraints.enforceclamps into the incoming range, and the incoming range was already tight.The render object also costs one object where the old path cost two, and drops the deferred layout pass with it. Measured in a consumer's broadcast grid at 5000 channels, one eight-scroll session: 840
_RenderLayoutBuilderand 840RenderFractionallySizedOverflowBoxbecome 1008_RenderFullHeight, everything else moving within noise.Expect on upgrade, two visible changes:
h-full max-h-[120px]underConstrainedBox(maxHeight: 400)w-1/2 h-full max-w-[100px]in a 300 pixel parenth-fullbeside a 60 pixel sibling under anIntrinsicHeightA TIGHT parent still wins over
max-h-*, which is the parent stating an exact size rather than the same bug.Version surfaces
The patch set, six files:
pubspec.yamlversion: 1.5.2example/pubspec.yamlversion: 1.5.2+1dartdoc_options.yamlblob/1.5.2/llms.txtVersion 1.5.2 stableCHANGELOG.md[Unreleased]promoted to[1.5.2] - 2026-09-08, tag reference added, compare reference retargetedexample/pubspec.lockversion: "1.5.2"entry, produced byflutter pub getinsideexample/skills/wind-ui/needs no version move for a patch: the nine reference H1s, SKILL.md's own H1, thedescriptionprefix and thefluttersdk_wind 1.5.xmarker all still read right.One thing did need fixing, in its own commit ahead of the bump: #200 moved SKILL.md's frontmatter to
version: 2.14.0but left the line 8 marker atSkill v2.13.2, so the file stated two different versions of itself. The two have moved together on every skill change since 1.4.x.Testing
dart analyze: cleandart format --set-exit-if-changed .: no diff, 390 filesflutter test: 1782 passing, the one pre-existing skip./tool/coverage.sh 90: 95.2%python3 tool/check-docs.py: 0 issues across 72 doc pagesdart pub publish --dry-run: 0 warnings on the committed tree, 1 hint (the gitignoredpubspec_overrides.yaml, which CI does not have)awkover the## [1.5.2]section, the check that fails thegithub-releasejob on empty notes): returns all four entriesAfter merge
git tag 1.5.2 && git push origin 1.5.2triggerspublish.yml: validate, pub.dev publish over OIDC, the GitHub Release, and the registry sync job that pushesskills/wind-ui/tofluttersdk/ai. pub.dev cannot unpublish, only retract, so the tag push is the point of no return.