Cover action identity

ClickedEvent carries an area address. LayoutAreaHost.OnClick resolves the control currently stored at that address; it does not carry the control the browser originally displayed. A reactive row must therefore keep an address associated with one action, even when its order changes.

The cover originally used unnamed WithView children. Those receive ordinal areas (1, 2, and so on). Before a progress record arrives, the row is Start / Get or Repair. Afterwards it is Resume / Start, with the install action folded into Start's menu. A click sent for the old second child can then execute Start. Menu entries have the same hazard: removing an earlier link can put Uninstall at Repair's former address.

BuildCoverCtaRow uses the framework's named WithView(control, area) overload for both row and menu children. The name derives from navigation target or install-dialog mode, independent of position, label and appearance. SHA-256 gives arbitrary authored targets a fixed path-safe segment; an occurrence suffix preserves duplicate links as separate controls. A removed action cannot take another action's address. Existing dialog confirmation and access checks still apply.

Evidence and limits

Education run 34430034774, shard 1 artifact 10134916847, contains reset trace 5375a5dfcc632167664909a2c7120b1c008a60e4.zip. Reconstructed 0-trace.trace snapshots show:

This rules out the proposed wrong-chevron selector repair. The trace does not record the server's exact control revision at click dispatch, so it does not alone prove which emission caused the navigation. Two tests of the production control builder reproduce the address collisions above: both fail with ordinal areas and pass with named action areas. All 868 Store tests pass locally against the extracted tester references; the native Tests-area gate and learner journey remain required release evidence.

The same Education run first exceeded its 300-second copied-workbench test while opening the last declared exercise; the retry passed that test in 4.5 minutes. That separate rendering cost is not fixed by action identity. Neither finding establishes the cause of production Edu/SelfAssessment's missing-area response.

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.