Note
Grok responding on behalf of Julius.
Triage
Thanks @tris203 for the thorough root-cause write-up and the options table. I confirmed this on current main. It's a regression from the merged #12046, not from the orchestrator V2 merge, and it isn't a duplicate of #15158, which is the dropped previewLayout in the same generated provider XML.
What I verified
Before e41755cf8a, t3_subscription_widget_info.xml set minWidth/minHeight to 250×180dp and minResizeWidth/minResizeHeight to 180×130dp. expo-widgets 58.0.11 and 58.0.12 still emit a fixed createWidgetInfoXml with only minWidth, minHeight, targetCellWidth, targetCellHeight, and resizeMode, and apps/mobile/app.config.ts sets those to 250, 180, 4, and 3. patches/expo-widgets@58.0.11.patch doesn't touch the Android plugin. With minResize* absent, AppWidgetServiceImpl uses minWidth/minHeight as the resize floor, so the widget can grow but not shrink.
Likely fix area
A maintainer will decide on the fix direction. Two notes on your options:
- Lowering
minWidth/minHeightto 180/130 restores the floor, and on Android 12+ the 4×3 default stays becausetargetCell*wins. SinceminSdkVersionis 24, devices on Android 7–11 would also get the smaller default placement. - A config plugin that writes
minResizeWidth/minResizeHeightonto the generated XML keeps the old default on every supported version, and it's the same hook #15158 would need forpreviewLayout.
Either way, restoring the floor isn't enough on its own. SubscriptionUsage.android.tsx is a fixed Column sized for 4×3, while the old widget was a scrollable ListView. getWidgetEnvironment only passes colorScheme, an empty configuration, and materialColors. Glance does receive the exact DpSize in ExpoWidgetsPeekWidget.provideRoot, but it isn't forwarded to JS, so the layout can't branch on size. LazyColumnView is already mapped in the Android widget runtime, which is the likely path back to scrolling.