You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replaces the "100% V1 dispatch coverage now reached" claim in the
tracker with the precise statement: every typed-items host family
scoped by Phase 3's batch list has a V1 descriptor. Adds an explicit
"Phase 3 deferred / not-attempted" enumeration to both §14 and the
tracker covering the long tail that was never on the Phase 3 batch
list — ContentDialog / Flyout / Popup family, navigation /
title-bar / media family, ItemsView / ItemContainer / plain
GridViewElement, interop + a11y wrappers, and the Reactor
composition primitives that likely should stay out of the V1
handler protocol entirely.
Also flags TemplatedFlipViewElement<T> as the one genuine engine
gap still carried from Phase 3 close-out (FlipView lacks
ContainerContentChanging; would need a PreMountedItems
ChildrenStrategy). The intermediate base
TemplatedFlipViewElementBase is reserved in the element hierarchy
for that future port.
No code changes — docs accuracy only.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/specs/047-extensible-control-model.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1431,7 +1431,9 @@ ARM64 stable-AC re-capture on `LAPTOP-4MEP83VI` remains deferred for the §14 ra
1431
1431
1432
1432
-**Port (7) ItemsRepeater<T>** — new `ItemsRepeaterElementBase` + `ItemsRepeaterElement<T>` records modeled on `LazyStackElementBase` (the base implements `IKeyedItemSource` + `IItemsRepeaterFactorySource` so it flows through Engine (1)'s arm without new engine work). Distinct from Lazy*Stack: no hard-coded `StackLayout` (nullable `Layout` property — author supplies any `WinUI.Layout`) and no implicit `ScrollViewer` wrap (host externally for scrolling). Legacy `MountItemsRepeater` / `UpdateItemsRepeater` arms added for V1 OFF parity (there was no legacy arm before — the element type is new). DSL surface: `ItemsRepeater<T>(items, keySelector, viewBuilder)` factory in `Dsl.cs` matching `LazyVStack` / `LazyHStack`. Single base-derived descriptor on `ItemsRepeaterElementBase` catches every closed-T variant via `RegisterHandlerForDerivedTypes`.
1433
1433
1434
-
**Phase 3 finish carry-forwards:** none remaining — every typed-items host has a V1 descriptor and the engine surface is complete. Production swap (Phase 4 cleanup) registers each descriptor in `RegisterV1BuiltInHandlers` and deletes the matching legacy `MountXxx` switch arm.
1434
+
**Phase 3 finish carry-forwards:** none remaining for the typed-items host families that were on Phase 3's scope (LazyVStack/HStack, ItemsRepeater<T>, ListView<T>, GridView<T>, TreeView, FlipView (simple), TabView, Pivot). The engine surface is complete. Production swap (Phase 4 cleanup) registers each descriptor in `RegisterV1BuiltInHandlers` and deletes the matching legacy `MountXxx` switch arm.
1435
+
1436
+
**Phase 3 deferred / not-attempted** (recorded for the Phase 3.5 / Phase 4 prelude — element types in the legacy `Reconciler.Mount` switch that have neither a Phase 1 V1 handler nor a Phase 3 descriptor; see `tasks/047-extensible-control-model-implementation.md` for the full enumeration). One genuine carve from close-out remains: `TemplatedFlipViewElement<T>` (the typed FlipView peer — needs a `PreMountedItems` ChildrenStrategy since FlipView lacks `ContainerContentChanging`). The rest of the deferred list — `GridViewElement` (plain), `ItemsViewElementBase`, dialog / overlay family (`ContentDialog`, `Flyout`, `Popup`, `MenuBar`, `MenuFlyout`, `CommandBar`, `CommandBarFlyout`), heavy / specialized controls (`WebView2`, `NavigationView`, `TitleBar`, `MediaPlayerElement`, `AnimatedVisualPlayer`, `MapControl`, `SemanticZoom`, `AnnotatedScrollBar`, `RefreshContainer`, `SwipeControl`, `ParallaxView`), interop / a11y (`SemanticElement`, `AnnounceRegion`, `XamlHost`, `XamlPage`, and the already-escape-hatched `IconElement`), and Reactor composition primitives (`Component`, `Func`, `Memo`, `ErrorBoundary`, `CommandHost`, `Validation.*`) — was never on the Phase 3 batch list. The composition primitives likely should NOT route through the V1 handler protocol (they sit above it); the rest are straightforward descriptor ports (or, where they'd surface engine gaps, would follow the close-out / finish pattern of landing the engine extension before the port).
1435
1437
1436
1438
**Phase 3 finish advisory perf** — Cloud PC x64 re-capture under `docs/specs/047/phase3-results/CPC-ander-YTZ3O-x64-advisory/2026-05-28-phase3-finish-3x5/` (n=15, 3 launches × 5 reps). V1 ON (descriptors) vs V1 OFF (today), against prior `2026-05-27-phase3-closeout-3x5/`:
0 commit comments