release: v1.3.3 — object-fit, CSS attribute selectors, memory-pressure callback, publish tooling#11
Merged
Conversation
…e callback, publish tooling ## Highlights - CSS object-fit (cover/contain/fill/none/scale-down) for <img> elements - CSS attribute selectors ([attr], [attr="val"], ^=, , *=, ~=, |=) - rgb()/rgba() color parsing fix (csslib FunctionTerm reconstruction) - onMemoryPressure callback on HyperViewer - FloatCarryover imagePixelOffset for cross-section float rendering - Ref-counted global TextPainter cache (multi-viewer safe) - imageConcurrency config wired to LazyImageQueue - Simplified publish.sh: remove dependency_overrides instead of full swap - Reader app demo polish (bookmarks, themes, ToC) - 973 tests passing, version bumps across all 7 sub-packages - Documentation: ROADMAP, COMPARISON_MATRIX, MIGRATION_GUIDE updates
Contributor
✅ Layout Regression — All fixtures within 60 FPS budget
One or more fixtures exceeded the 16 ms budget.
No action required. |
Contributor
❌ Visual Regression Detected23 golden test(s) failed on Flutter 3.41.5 / ubuntu-22.04. The rendered output no longer matches the reference images. If the change is intentional, regenerate the goldens on the docker run --rm \
-v $(pwd):/workspace -w /workspace \
ghcr.io/cirruslabs/flutter:3.41.5 \
bash -c "apt-get update -qq && \
apt-get install -y fonts-noto fonts-noto-cjk fonts-roboto && \
flutter pub get && \
flutter test test/golden/ --update-goldens"
git add test/golden/goldens/
git commit -m "chore: update golden references (Flutter 3.41.5)"
|
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.
Release v1.3.3 — Production Readiness
🚀 Production Readiness
hyper_render_math, etc.) are fully resolved and analyzed.✨ New CSS Properties
object-fit:cover,contain,fill,none,scale-down— applies to<img>elements. Controls how the image content is resized to fit its layout box.[attr],[attr="val"],[attr^="val"],[attr$="val"],[attr*="val"],[attr~="val"],[attr|="val"]— enables matching on element attributes in custom CSS rules.✨ New Features
onMemoryPressurecallback:HyperViewernow exposes an optionalVoidCallback? onMemoryPressureparameter (all constructors). Invoked after HyperRender clears its internal caches in response todidHaveMemoryPressure.🐛 Bug Fixes
rgb()/rgba()color parsing: csslib'sFunctionTerm.span?.textonly covers the argument list — the function name was lost. Fixed by reconstructing the canonicalname(args)form fromFunctionTerm.text+span?.text.HyperViewerinstances with differenttextPainterCacheSizeno longer clobber each other's cache. Uses ref-counting so the largest requested size is always active.imageConcurrencyconfig wired:HyperRenderConfig.imageConcurrencynow actually drivesLazyImageQueue.instance.maxConcurrent(was ignored).🔧 Improvements
imagePixelOffset: Cross-section float images now carry offset data to avoid re-painting already-visible portions.FloatCarryovervalue equality: Added proper==/hashCodefor comparison in_onFloatCarryover.HyperAnimationControllerdispose hardening: Prevents controller double-dispose race conditions.📱 Example App — Reader Demo Polish
🛠️ Publish Tooling
publish.shsimplified: Instead of swapping entire pubspec, now only removesdependency_overridesblock before publish — dependencies already have correct version constraints. Restores viagit checkout.prepare_publish.shupdated: Same approach — stripdependency_overridesinstead of full-file swap.📝 Documentation
list-style-type,list-style-positionmarked completed;object-fitmoved to Completed📦 Packages Updated
hyper_renderhyper_render_corehyper_render_htmlhyper_render_markdownhyper_render_highlighthyper_render_clipboardhyper_render_devtoolshyper_render_math🧪 Test Summary
object_fit_test.dart,review_fixes_v1_3_3_test.dart,v1_3_3_comprehensive_testing_test.dartFull changelog: CHANGELOG.md