fix: resolve 8 bugs + bump version to 1.2.2#6
Conversation
Android build (#5): - Add subprojects compileSdk=35 override in example/android/build.gradle.kts to fix irondash_engine_context vs androidx.fragment:1.7.1 mismatch SVG invisible with sanitize:true (html_sanitizer.dart): - Add atomic SVG sanitization path (_sanitizeSvgElement, _sanitizeSvgAttributes) preserving structural elements while stripping scripts/dangerous attrs HyperRenderConfig equality (hyper_render_config.dart): - Add operator== and hashCode to prevent identity-compare re-layouts on every frame when _effectiveConfig merges keyframes into a new object selectable toggle ignored after build (hyper_viewer.dart): - Create/dispose VirtualizedSelectionController in didUpdateWidget when selectable prop changes Deep-link tap silently blocked (hyper_viewer.dart): - _safeOnLinkTap now checks both allowedCustomSchemes AND renderConfig.extraLinkSchemes CSS change did not invalidate section cache (hyper_viewer.dart): - Reset _sectionHashes in didUpdateWidget when customCss changes Markdown/Delta single-section in virtualized/paged mode (hyper_viewer.dart): - Add _splitIntoSections() helper; sync fallback now chunks at block boundaries renderConfig change only partially detected (hyper_viewer.dart): - didUpdateWidget uses full renderConfig != instead of only virtualizationChunkSize CSS float class names not detected (html_adapter.dart): - _containsFloatChild now recognises Bootstrap/Tailwind float class patterns Misc: - Fix unused element _containsPositionAbsoluteOrFixed in html_heuristics.dart - Add .pubignore entries for archive/, coverage/, .metadata, pubspec_dev.yaml - dart format all changed files
…late-literal JS error
✅ Layout Regression — All fixtures within 60 FPS budget
One or more fixtures exceeded the 16 ms budget.
No action required. |
✅ Layout Regression — All fixtures within 60 FPS budget
One or more fixtures exceeded the 16 ms budget.
No action required. |
❌ 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)"
|
✅ Layout Regression — All fixtures within 60 FPS budget
One or more fixtures exceeded the 16 ms budget.
No action required. |
✅ Layout Regression — All fixtures within 60 FPS budget
One or more fixtures exceeded the 16 ms budget.
No action required. |
Summary
irondash_engine_context 0.5.5(compileSdk=31) conflicts withandroidx.fragment:1.7.1(minCompileSdk=34) — addedsubprojects { compileSdk = 35 }override inexample/android/build.gradle.ktssanitize: true: Added atomic SVG sanitization that preserves structure while stripping<script>and dangerous attributesHyperRenderConfigidentity-compare bug: Addedoperator==/hashCode— prevents unnecessary re-layouts when_effectiveConfigcreates new object for@keyframesdocsselectabletoggle ignored:didUpdateWidgetnow creates/disposesVirtualizedSelectionControllercorrectly_safeOnLinkTapnow consults bothallowedCustomSchemesandrenderConfig.extraLinkSchemes_sectionHashesreset indidUpdateWidgetwhencustomCsschanges_splitIntoSections()— large Markdown/Delta docs now chunk properly in virtualized/paged moderenderConfigpartial change detection:didUpdateWidgetuses full value equality instead of onlyvirtualizationChunkSize_containsFloatChildnow recognises Bootstrap/Tailwind patterns (float-left,pull-right,alignleft, etc.)Test plan
dart analyze --fatal-infos— no issuesdart format— no diffflutter test --no-pub)