@ccslabs/xtend 0.1.0-rc.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/catalog/component-catalog-coverage.js +2 -0
  4. package/catalog/epic13-package-export-lock.js +11 -1
  5. package/catalog/epic13-rmt-production-readiness.js +0 -1
  6. package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
  7. package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
  8. package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
  9. package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
  10. package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
  11. package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
  12. package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
  13. package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
  14. package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
  15. package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
  16. package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
  17. package/catalog/epic18-rmt-component-template-primitives.js +240 -0
  18. package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
  19. package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
  20. package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
  21. package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
  22. package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
  23. package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
  24. package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
  25. package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
  26. package/catalog/surface-manager-controller.js +5 -1
  27. package/catalog/surface-manager-materialization.js +7 -1
  28. package/catalog/surface-manager-overlay-bridge.js +41 -6
  29. package/catalog/surface-manager-workbench-fixture.js +1 -1
  30. package/catalog/surface-type-capability-matrix.d.ts +61 -0
  31. package/catalog/surface-type-capability-matrix.js +183 -0
  32. package/catalog/type-exports-rmt.js +37 -1
  33. package/catalog/type-exports.js +3 -3
  34. package/components/icon-packs/lucide.js +4 -0
  35. package/components/manifest.json +2 -0
  36. package/components/prism-rmt.d.ts +34 -0
  37. package/components/prism-rmt.js +130 -0
  38. package/components/xcards.js +15 -0
  39. package/components/xcode.d.ts +36 -1
  40. package/components/xcode.js +215 -20
  41. package/components/xfooter.js +17 -0
  42. package/components/xheader.js +14 -0
  43. package/components/xhero.js +16 -1
  44. package/components/xlink.js +97 -14
  45. package/components/xmasonry.js +15 -0
  46. package/components/xplayer.d.ts +44 -2
  47. package/components/xplayer.js +242 -15
  48. package/components/xrouter.js +27 -2
  49. package/components/xsection.js +15 -0
  50. package/components/xsidepanel.js +10 -2
  51. package/components/xsurfacemanager-controller.d.ts +2 -1
  52. package/components/xsurfacemanager-controller.js +27 -3
  53. package/components/xsurfacemanager.d.ts +2 -0
  54. package/components/xsurfacemanager.js +20 -8
  55. package/components/xsurfaceoverlay-bridge.d.ts +20 -5
  56. package/components/xsurfaceoverlay-bridge.js +114 -18
  57. package/components/xsurfaceportal.d.ts +29 -0
  58. package/components/xsurfaceportal.js +122 -0
  59. package/components/xsurfaceregion.d.ts +50 -0
  60. package/components/xsurfaceregion.js +285 -0
  61. package/components/xsurfacewindow.js +2 -1
  62. package/components/xtooltip.js +89 -23
  63. package/docs/README.md +222 -298
  64. package/docs/changelog.md +107 -0
  65. package/docs/component-catalog-coverage.md +9 -9
  66. package/docs/component-platform.md +19 -1
  67. package/docs/component-ux-app-authoring.md +56 -63
  68. package/docs/components/xcode.md +83 -53
  69. package/docs/components/xsurfaceportal.md +32 -0
  70. package/docs/components/xsurfaceregion.md +37 -0
  71. package/docs/components.md +105 -69
  72. package/docs/de/README.md +264 -0
  73. package/docs/de/XTend-ADR.md +221 -0
  74. package/docs/de/a11y-keyboard-smokes.md +62 -0
  75. package/docs/de/about.md +18 -0
  76. package/docs/de/api.md +157 -0
  77. package/docs/de/best-practices.md +76 -0
  78. package/docs/de/changelog.md +107 -0
  79. package/docs/de/component-catalog-coverage.md +58 -0
  80. package/docs/de/component-lab.md +103 -0
  81. package/docs/de/component-long-tail-migration.md +41 -0
  82. package/docs/de/component-platform.md +177 -0
  83. package/docs/de/component-ux-app-authoring.md +123 -0
  84. package/docs/de/component-ux-authoring.md +96 -0
  85. package/docs/de/component-ux-gates.md +45 -0
  86. package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
  87. package/docs/de/components/xalert.md +81 -0
  88. package/docs/de/components/xbutton.md +103 -0
  89. package/docs/de/components/xcalendar.md +82 -0
  90. package/docs/de/components/xcards.md +128 -0
  91. package/docs/de/components/xcheckbox.md +102 -0
  92. package/docs/de/components/xcode.md +156 -0
  93. package/docs/de/components/xdialog.md +92 -0
  94. package/docs/de/components/xdrawer.md +84 -0
  95. package/docs/de/components/xfooter.md +126 -0
  96. package/docs/de/components/xform.md +128 -0
  97. package/docs/de/components/xheader.md +308 -0
  98. package/docs/de/components/xhero.md +142 -0
  99. package/docs/de/components/xicon.md +125 -0
  100. package/docs/de/components/xinput.md +129 -0
  101. package/docs/de/components/xlightbox.md +98 -0
  102. package/docs/de/components/xlink.md +109 -0
  103. package/docs/de/components/xmasonry.md +124 -0
  104. package/docs/de/components/xmenu.md +158 -0
  105. package/docs/de/components/xmodal.md +82 -0
  106. package/docs/de/components/xplayer.md +104 -0
  107. package/docs/de/components/xpopover.md +67 -0
  108. package/docs/de/components/xprogress.md +56 -0
  109. package/docs/de/components/xradio.md +103 -0
  110. package/docs/de/components/xrouter.md +260 -0
  111. package/docs/de/components/xsection.md +125 -0
  112. package/docs/de/components/xselect.md +105 -0
  113. package/docs/de/components/xsidepanel.md +30 -0
  114. package/docs/de/components/xspinner.md +102 -0
  115. package/docs/de/components/xstate.md +148 -0
  116. package/docs/de/components/xstatus.md +55 -0
  117. package/docs/de/components/xsummary.md +78 -0
  118. package/docs/de/components/xsurfacemanager.md +27 -0
  119. package/docs/de/components/xsurfacewindow.md +21 -0
  120. package/docs/de/components/xtabs.md +160 -0
  121. package/docs/de/components/xtextarea.md +98 -0
  122. package/docs/de/components/xtheme.md +167 -0
  123. package/docs/de/components/xtoast.md +62 -0
  124. package/docs/de/components/xtooltip.md +66 -0
  125. package/docs/de/components/xtype.md +82 -0
  126. package/docs/de/components/xutils.md +144 -0
  127. package/docs/de/components/xwriter.md +94 -0
  128. package/docs/de/components.md +153 -0
  129. package/docs/de/conditional-network-evidence-ci.md +38 -0
  130. package/docs/de/conditional-network-evidence.md +50 -0
  131. package/docs/de/core-migration-guide.md +110 -0
  132. package/docs/de/design-tokens.md +116 -0
  133. package/docs/de/docs-rmt-production-hardening.md +31 -0
  134. package/docs/de/enterprise-adoption.md +413 -0
  135. package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
  136. package/docs/de/epic10-platform-gates.md +62 -0
  137. package/docs/de/epic10-release-handoff.md +81 -0
  138. package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
  139. package/docs/de/epic12-rc0-handoff.md +61 -0
  140. package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
  141. package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
  142. package/docs/de/epic18-vendor-bugfixes.md +34 -0
  143. package/docs/de/existing-component-metadata.md +67 -0
  144. package/docs/de/hydration-performance-closure.md +34 -0
  145. package/docs/de/hydration-policies.md +71 -0
  146. package/docs/de/known-residual-triage.md +22 -0
  147. package/docs/de/manifest-import-policy.md +79 -0
  148. package/docs/de/manifest.md +112 -0
  149. package/docs/de/motion-contrast.md +67 -0
  150. package/docs/de/package-export-lock.md +44 -0
  151. package/docs/de/performance-measurements.md +106 -0
  152. package/docs/de/performance-regression.md +89 -0
  153. package/docs/de/performance.md +94 -0
  154. package/docs/de/previews/README.md +17 -0
  155. package/docs/de/prod-browser-csp-smokes.md +40 -0
  156. package/docs/de/public-component-types.md +79 -0
  157. package/docs/de/quick-start-guide.md +220 -0
  158. package/docs/de/rc0-adoption-guide.md +102 -0
  159. package/docs/de/rc0-gate-matrix.md +58 -0
  160. package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
  161. package/docs/de/rc1-migration-notes.md +69 -0
  162. package/docs/de/rc1-readiness.md +46 -0
  163. package/docs/de/release-owner-acceptance.md +56 -0
  164. package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
  165. package/docs/de/rmt-action-effect-runtime.md +81 -0
  166. package/docs/de/rmt-app-platform-authoring.md +54 -0
  167. package/docs/de/rmt-app-platform-fixture.md +46 -0
  168. package/docs/de/rmt-app-platform-migration-guide.md +88 -0
  169. package/docs/de/rmt-app-platform-tooling.md +79 -0
  170. package/docs/de/rmt-component-template-primitives.md +57 -0
  171. package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
  172. package/docs/de/rmt-dsl-authoring-polish.md +145 -0
  173. package/docs/de/rmt-event-routing-runtime.md +81 -0
  174. package/docs/de/rmt-first-demo-app.md +77 -0
  175. package/docs/de/rmt-first-xtend-apps.md +129 -0
  176. package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  177. package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
  178. package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
  179. package/docs/de/rmt-language-server.md +234 -0
  180. package/docs/de/rmt-lifecycle-demo.md +24 -0
  181. package/docs/de/rmt-linter.md +140 -0
  182. package/docs/de/rmt-node-ssr-adapter.md +100 -0
  183. package/docs/de/rmt-php-ssr-adapter.md +120 -0
  184. package/docs/de/rmt-production-readiness.md +63 -0
  185. package/docs/de/rmt-state-selector-runtime.md +47 -0
  186. package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
  187. package/docs/de/rmt-tooling-release-gates.md +77 -0
  188. package/docs/de/rmt-vnext-authoring.md +170 -0
  189. package/docs/de/rmt-vnext-component-primitives.md +188 -0
  190. package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
  191. package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  192. package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
  193. package/docs/de/rmt-vnext-migration-notes.md +62 -0
  194. package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
  195. package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
  196. package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
  197. package/docs/de/rmt-vnext-primitive-migration.md +119 -0
  198. package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
  199. package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
  200. package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
  201. package/docs/de/rmt-vnext-release-handoff.md +83 -0
  202. package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
  203. package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
  204. package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
  205. package/docs/de/screenreader-signals.md +56 -0
  206. package/docs/de/supply-chain-gates.md +100 -0
  207. package/docs/de/surface-manager-authoring-guide.md +94 -0
  208. package/docs/de/surface-manager-browser-lab.md +45 -0
  209. package/docs/de/surface-manager-component-lab.md +43 -0
  210. package/docs/de/surface-manager-controller.md +66 -0
  211. package/docs/de/surface-manager-layout-engines.md +32 -0
  212. package/docs/de/surface-manager-lazy-hydration.md +63 -0
  213. package/docs/de/surface-manager-migration-guide.md +122 -0
  214. package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
  215. package/docs/de/surface-manager-overlay-bridge.md +53 -0
  216. package/docs/de/surface-manager-persistence.md +30 -0
  217. package/docs/de/surface-manager-quality-gates.md +51 -0
  218. package/docs/de/surface-manager-release-handoff.md +68 -0
  219. package/docs/de/surface-manager-remote-policy.md +54 -0
  220. package/docs/de/surface-manager-rmt-authoring.md +102 -0
  221. package/docs/de/surface-manager-route-lifecycle.md +59 -0
  222. package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
  223. package/docs/de/surface-manager-side-panel-runtime.md +36 -0
  224. package/docs/de/surface-manager-stack-policy.md +39 -0
  225. package/docs/de/surface-manager-window-runtime.md +47 -0
  226. package/docs/de/surface-manager-workbench-fixture.md +43 -0
  227. package/docs/de/third-party-design-authoring.md +406 -0
  228. package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
  229. package/docs/de/trusted-dom-sanitizing.md +110 -0
  230. package/docs/de/type-exports.md +61 -0
  231. package/docs/de/typescript-components.md +63 -0
  232. package/docs/de/visual-browser-regression.md +83 -0
  233. package/docs/de/visual-owner-artifacts.md +46 -0
  234. package/docs/de/visual-snapshot-automation.md +87 -0
  235. package/docs/de/xtend-api-types.md +55 -0
  236. package/docs/de/xtend-builder-types.md +55 -0
  237. package/docs/de/xtend-catalog-types.md +44 -0
  238. package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
  239. package/docs/de/xtend-fabric.md +474 -0
  240. package/docs/de/xtend-loader-types.md +58 -0
  241. package/docs/de/xtend-loader.md +265 -0
  242. package/docs/de/xtend-policy-types.md +38 -0
  243. package/docs/de/xtend-rmt-types.md +40 -0
  244. package/docs/de/xtend-vendor-types.md +36 -0
  245. package/docs/de/xtendrmt-app-dsl.md +334 -0
  246. package/docs/de/xtendrmt-migration-guide.md +266 -0
  247. package/docs/de/xtendrmt-native-authoring.md +333 -0
  248. package/docs/de/xtendrmt-overview.md +109 -0
  249. package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
  250. package/docs/de/xtendrmt-runtime-bridge.md +155 -0
  251. package/docs/en/README.md +163 -0
  252. package/docs/en/XTend-ADR.md +221 -0
  253. package/docs/en/a11y-keyboard-smokes.md +68 -0
  254. package/docs/en/about.md +25 -0
  255. package/docs/en/api.md +171 -0
  256. package/docs/en/best-practices.md +125 -0
  257. package/docs/en/changelog.md +104 -0
  258. package/docs/en/component-catalog-coverage.md +104 -0
  259. package/docs/en/component-lab.md +103 -0
  260. package/docs/en/component-long-tail-migration.md +41 -0
  261. package/docs/en/component-platform.md +243 -0
  262. package/docs/en/component-ux-app-authoring.md +118 -0
  263. package/docs/en/component-ux-authoring.md +96 -0
  264. package/docs/en/component-ux-gates.md +45 -0
  265. package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
  266. package/docs/en/components/xalert.md +94 -0
  267. package/docs/en/components/xbutton.md +118 -0
  268. package/docs/en/components/xcalendar.md +95 -0
  269. package/docs/en/components/xcards.md +139 -0
  270. package/docs/en/components/xcheckbox.md +118 -0
  271. package/docs/en/components/xcode.md +153 -0
  272. package/docs/en/components/xdialog.md +108 -0
  273. package/docs/en/components/xdrawer.md +110 -0
  274. package/docs/en/components/xfooter.md +138 -0
  275. package/docs/en/components/xform.md +147 -0
  276. package/docs/en/components/xheader.md +308 -0
  277. package/docs/en/components/xhero.md +157 -0
  278. package/docs/en/components/xicon.md +149 -0
  279. package/docs/en/components/xinput.md +147 -0
  280. package/docs/en/components/xlightbox.md +113 -0
  281. package/docs/en/components/xlink.md +130 -0
  282. package/docs/en/components/xmasonry.md +136 -0
  283. package/docs/en/components/xmenu.md +185 -0
  284. package/docs/en/components/xmodal.md +102 -0
  285. package/docs/en/components/xplayer.md +114 -0
  286. package/docs/en/components/xpopover.md +87 -0
  287. package/docs/en/components/xprogress.md +73 -0
  288. package/docs/en/components/xradio.md +119 -0
  289. package/docs/en/components/xrouter.md +260 -0
  290. package/docs/en/components/xsection.md +136 -0
  291. package/docs/en/components/xselect.md +122 -0
  292. package/docs/en/components/xsidepanel.md +48 -0
  293. package/docs/en/components/xspinner.md +118 -0
  294. package/docs/en/components/xstate.md +163 -0
  295. package/docs/en/components/xstatus.md +71 -0
  296. package/docs/en/components/xsummary.md +90 -0
  297. package/docs/en/components/xsurfacemanager.md +42 -0
  298. package/docs/en/components/xsurfacewindow.md +31 -0
  299. package/docs/en/components/xtabs.md +187 -0
  300. package/docs/en/components/xtextarea.md +115 -0
  301. package/docs/en/components/xtheme.md +203 -0
  302. package/docs/en/components/xtoast.md +78 -0
  303. package/docs/en/components/xtooltip.md +85 -0
  304. package/docs/en/components/xtype.md +91 -0
  305. package/docs/en/components/xutils.md +161 -0
  306. package/docs/en/components/xwriter.md +106 -0
  307. package/docs/en/components.md +151 -0
  308. package/docs/en/conditional-network-evidence-ci.md +38 -0
  309. package/docs/en/conditional-network-evidence.md +50 -0
  310. package/docs/en/core-migration-guide.md +110 -0
  311. package/docs/en/design-tokens.md +137 -0
  312. package/docs/en/docs-rmt-production-hardening.md +31 -0
  313. package/docs/en/enterprise-adoption.md +413 -0
  314. package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
  315. package/docs/en/epic10-platform-gates.md +62 -0
  316. package/docs/en/epic10-release-handoff.md +81 -0
  317. package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
  318. package/docs/en/epic12-rc0-handoff.md +61 -0
  319. package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
  320. package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
  321. package/docs/en/epic18-vendor-bugfixes.md +29 -0
  322. package/docs/en/existing-component-metadata.md +67 -0
  323. package/docs/en/hydration-performance-closure.md +34 -0
  324. package/docs/en/hydration-policies.md +75 -0
  325. package/docs/en/known-residual-triage.md +22 -0
  326. package/docs/en/manifest-import-policy.md +81 -0
  327. package/docs/en/manifest.md +135 -0
  328. package/docs/en/motion-contrast.md +67 -0
  329. package/docs/en/package-export-lock.md +44 -0
  330. package/docs/en/performance-measurements.md +106 -0
  331. package/docs/en/performance-regression.md +89 -0
  332. package/docs/en/performance.md +132 -0
  333. package/docs/en/previews/README.md +17 -0
  334. package/docs/en/prod-browser-csp-smokes.md +40 -0
  335. package/docs/en/public-component-types.md +79 -0
  336. package/docs/en/quick-start-guide.md +189 -0
  337. package/docs/en/rc0-adoption-guide.md +102 -0
  338. package/docs/en/rc0-gate-matrix.md +58 -0
  339. package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
  340. package/docs/en/rc1-migration-notes.md +69 -0
  341. package/docs/en/rc1-readiness.md +46 -0
  342. package/docs/en/release-owner-acceptance.md +56 -0
  343. package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
  344. package/docs/en/rmt-action-effect-runtime.md +101 -0
  345. package/docs/en/rmt-app-platform-authoring.md +47 -0
  346. package/docs/en/rmt-app-platform-fixture.md +35 -0
  347. package/docs/en/rmt-app-platform-migration-guide.md +75 -0
  348. package/docs/en/rmt-app-platform-tooling.md +58 -0
  349. package/docs/en/rmt-component-template-primitives.md +49 -0
  350. package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
  351. package/docs/en/rmt-dsl-authoring-polish.md +143 -0
  352. package/docs/en/rmt-event-routing-runtime.md +98 -0
  353. package/docs/en/rmt-first-demo-app.md +87 -0
  354. package/docs/en/rmt-first-xtend-apps.md +127 -0
  355. package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
  356. package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
  357. package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
  358. package/docs/en/rmt-language-server.md +243 -0
  359. package/docs/en/rmt-lifecycle-demo.md +23 -0
  360. package/docs/en/rmt-linter.md +146 -0
  361. package/docs/en/rmt-node-ssr-adapter.md +99 -0
  362. package/docs/en/rmt-php-ssr-adapter.md +118 -0
  363. package/docs/en/rmt-production-readiness.md +63 -0
  364. package/docs/en/rmt-state-selector-runtime.md +34 -0
  365. package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
  366. package/docs/en/rmt-tooling-release-gates.md +77 -0
  367. package/docs/en/rmt-vnext-authoring.md +102 -0
  368. package/docs/en/rmt-vnext-component-primitives.md +185 -0
  369. package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
  370. package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
  371. package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
  372. package/docs/en/rmt-vnext-migration-notes.md +62 -0
  373. package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
  374. package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
  375. package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
  376. package/docs/en/rmt-vnext-primitive-migration.md +93 -0
  377. package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
  378. package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
  379. package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
  380. package/docs/en/rmt-vnext-release-handoff.md +83 -0
  381. package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
  382. package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
  383. package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
  384. package/docs/en/screenreader-signals.md +56 -0
  385. package/docs/en/supply-chain-gates.md +106 -0
  386. package/docs/en/surface-manager-authoring-guide.md +94 -0
  387. package/docs/en/surface-manager-browser-lab.md +45 -0
  388. package/docs/en/surface-manager-component-lab.md +43 -0
  389. package/docs/en/surface-manager-controller.md +66 -0
  390. package/docs/en/surface-manager-layout-engines.md +32 -0
  391. package/docs/en/surface-manager-lazy-hydration.md +63 -0
  392. package/docs/en/surface-manager-migration-guide.md +113 -0
  393. package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
  394. package/docs/en/surface-manager-overlay-bridge.md +53 -0
  395. package/docs/en/surface-manager-persistence.md +30 -0
  396. package/docs/en/surface-manager-quality-gates.md +51 -0
  397. package/docs/en/surface-manager-release-handoff.md +68 -0
  398. package/docs/en/surface-manager-remote-policy.md +54 -0
  399. package/docs/en/surface-manager-rmt-authoring.md +89 -0
  400. package/docs/en/surface-manager-route-lifecycle.md +59 -0
  401. package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
  402. package/docs/en/surface-manager-side-panel-runtime.md +36 -0
  403. package/docs/en/surface-manager-stack-policy.md +39 -0
  404. package/docs/en/surface-manager-window-runtime.md +47 -0
  405. package/docs/en/surface-manager-workbench-fixture.md +43 -0
  406. package/docs/en/third-party-design-authoring.md +406 -0
  407. package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
  408. package/docs/en/trusted-dom-sanitizing.md +124 -0
  409. package/docs/en/type-exports.md +61 -0
  410. package/docs/en/typescript-components.md +63 -0
  411. package/docs/en/visual-browser-regression.md +83 -0
  412. package/docs/en/visual-owner-artifacts.md +46 -0
  413. package/docs/en/visual-snapshot-automation.md +87 -0
  414. package/docs/en/xtend-api-types.md +55 -0
  415. package/docs/en/xtend-builder-types.md +55 -0
  416. package/docs/en/xtend-catalog-types.md +44 -0
  417. package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
  418. package/docs/en/xtend-fabric.md +474 -0
  419. package/docs/en/xtend-loader-types.md +58 -0
  420. package/docs/en/xtend-loader.md +265 -0
  421. package/docs/en/xtend-policy-types.md +38 -0
  422. package/docs/en/xtend-rmt-types.md +40 -0
  423. package/docs/en/xtend-vendor-types.md +36 -0
  424. package/docs/en/xtendrmt-app-dsl.md +331 -0
  425. package/docs/en/xtendrmt-migration-guide.md +256 -0
  426. package/docs/en/xtendrmt-native-authoring.md +336 -0
  427. package/docs/en/xtendrmt-overview.md +63 -0
  428. package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
  429. package/docs/en/xtendrmt-runtime-bridge.md +155 -0
  430. package/docs/enterprise-adoption.md +4 -2
  431. package/docs/epic18-media-manager-vendor-upstream.md +318 -0
  432. package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
  433. package/docs/epic18-vendor-bugfixes.md +34 -0
  434. package/docs/index.php +1056 -109
  435. package/docs/manifest.md +8 -2
  436. package/docs/menu.json +986 -133
  437. package/docs/package-export-lock.md +2 -2
  438. package/docs/public-component-types.md +2 -2
  439. package/docs/quick-start-guide.md +126 -58
  440. package/docs/rmt-action-effect-runtime.md +101 -0
  441. package/docs/rmt-app-platform-authoring.md +54 -0
  442. package/docs/rmt-app-platform-fixture.md +46 -0
  443. package/docs/rmt-app-platform-migration-guide.md +88 -0
  444. package/docs/rmt-app-platform-tooling.md +79 -0
  445. package/docs/rmt-component-template-primitives.md +57 -0
  446. package/docs/rmt-dom-descriptor-renderer.md +64 -0
  447. package/docs/rmt-dsl-authoring-polish.md +67 -44
  448. package/docs/rmt-event-routing-runtime.md +98 -0
  449. package/docs/rmt-first-demo-app.md +2 -2
  450. package/docs/rmt-first-xtend-apps.md +70 -46
  451. package/docs/rmt-language-server.md +61 -4
  452. package/docs/rmt-lifecycle-demo.md +1 -2
  453. package/docs/rmt-node-ssr-adapter.md +144 -0
  454. package/docs/rmt-php-ssr-adapter.md +158 -0
  455. package/docs/rmt-state-selector-runtime.md +47 -0
  456. package/docs/rmt-surface-resource-graph-runtime.md +92 -0
  457. package/docs/rmt-vnext-authoring.md +128 -18
  458. package/docs/rmt-vnext-component-primitives.md +188 -0
  459. package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
  460. package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
  461. package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
  462. package/docs/rmt-vnext-primitive-lowering.md +108 -0
  463. package/docs/rmt-vnext-primitive-migration.md +119 -0
  464. package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
  465. package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
  466. package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
  467. package/docs/rmt-vnext-release-handoff.md +14 -0
  468. package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
  469. package/docs/surface-manager-migration-guide.md +34 -6
  470. package/docs/surface-manager-overlay-bridge.md +9 -4
  471. package/docs/surface-manager-rmt-authoring.md +50 -34
  472. package/docs/surface-manager-workbench-fixture.md +1 -2
  473. package/docs/third-party-design-authoring.md +1 -1
  474. package/docs/type-exports.md +3 -3
  475. package/docs/utils/pageloader.js +811 -62
  476. package/docs/visual-browser-regression.md +1 -1
  477. package/docs/xtend-rmt-types.md +3 -2
  478. package/docs/xtendrmt-app-dsl.md +187 -122
  479. package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
  480. package/docs/xtendrmt-migration-guide.md +48 -17
  481. package/docs/xtendrmt-native-authoring.md +213 -217
  482. package/docs/xtendrmt-overview.md +81 -61
  483. package/docs/xtendrmt-parsedown-scheduling.md +23 -8
  484. package/fabric/package.json +1 -1
  485. package/package.json +684 -21
  486. package/tools/package.json +5 -1
  487. package/tools/rmt-editor/vscode/README.md +72 -5
  488. package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
  489. package/tools/rmt-editor/vscode/extension.d.ts +33 -0
  490. package/tools/rmt-editor/vscode/extension.js +1816 -7
  491. package/tools/rmt-editor/vscode/language-configuration.json +2 -1
  492. package/tools/rmt-editor/vscode/package.json +193 -2
  493. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
  494. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
  495. package/tools/rmt-editor/vscode/templates/launch.json +70 -0
  496. package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
  497. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  498. package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
  499. package/tools/rmt-language/app-platform-tooling.js +677 -0
  500. package/tools/rmt-language/completions.d.ts +5 -0
  501. package/tools/rmt-language/completions.js +185 -3
  502. package/tools/rmt-language/diagnostics.js +54 -0
  503. package/tools/rmt-language/hover.js +36 -0
  504. package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
  505. package/tools/rmt-language/rules/app-platform-policy.js +39 -0
  506. package/tools/rmt-language/rules/index.js +5 -1
  507. package/tools/rmt-language/semantic-graph.d.ts +6 -0
  508. package/tools/rmt-language/semantic-graph.js +928 -0
  509. package/tools/rmt-language/snippets/index.js +44 -0
  510. package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
  511. package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
  512. package/tools/rmt-language/vnext-compatibility.js +642 -0
  513. package/tools/rmt-language/vnext-compiler.d.ts +5 -0
  514. package/tools/rmt-language/vnext-compiler.js +863 -17
  515. package/tools/rmt-language/vnext-parser.js +725 -9
  516. package/tools/rmt-language/vnext-release.d.ts +1 -0
  517. package/tools/rmt-language/vnext-release.js +20 -0
  518. package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
  519. package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
  520. package/tools/rmt-language/vnext-surfaces.js +111 -52
  521. package/tools/rmt-language/vnext-tooling.d.ts +19 -1
  522. package/tools/rmt-language/vnext-tooling.js +1247 -5
  523. package/tools/rmt-language-server/protocol.js +3 -0
  524. package/tools/rmt-language-server/server.d.ts +2 -0
  525. package/tools/rmt-language-server/server.js +176 -22
  526. package/tools/rmt-linter/cli.d.ts +2 -0
  527. package/tools/rmt-linter/cli.js +62 -0
  528. package/xtend-builder/generators/registry.js +11 -0
  529. package/xtend-builder/generators/rmt-app-platform.js +239 -0
  530. package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
  531. package/xtend-builder/lib/cli.js +38 -0
  532. package/xtend-builder/package.json +3 -3
  533. package/xtend-builder/scaffold.config.js +29 -2
  534. package/xtend.css +49 -2
  535. package/xtendrmt/package.json +49 -1
  536. package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
  537. package/xtendrmt/rmt-action-effect-runtime.js +494 -0
  538. package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
  539. package/xtendrmt/rmt-component-capability-registry.js +636 -0
  540. package/xtendrmt/rmt-core.d.ts +6 -0
  541. package/xtendrmt/rmt-core.esm.js +32 -6
  542. package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
  543. package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
  544. package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
  545. package/xtendrmt/rmt-event-routing-runtime.js +666 -0
  546. package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
  547. package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
  548. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
  549. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
  550. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
  551. package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
  552. package/xtendrmt/rmt-native-shell-runtime.js +309 -0
  553. package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
  554. package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
  555. package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
  556. package/xtendrmt/rmt-runtime.browser.js +32 -6
  557. package/xtendrmt/rmt-runtime.esm.js +32 -6
  558. package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
  559. package/xtendrmt/rmt-state-selector-runtime.js +866 -0
  560. package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
  561. package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
  562. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
  563. package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
  564. package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
  565. package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
  566. package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
@@ -0,0 +1,739 @@
1
+ # RMT vNext Primitive Compiler Backlog
2
+
3
+ - Contract: `xtend.rmt.vnext-primitives-compiler-backlog.v1`
4
+ - Status: `in_progress`
5
+ - Quelle: Media-Manager-Downstream-Integration, `2026-05-19`
6
+ - Transfer-Typ: Lessons Learned / Backlog
7
+ - Downstream-Evidence:
8
+ - `/home/konni/Dokumente/net.ccs.cloud/media-manager/src/rmt/media-manager-shell.rmt`
9
+ - `/home/konni/Dokumente/net.ccs.cloud/media-manager/src/rmt/media-manager-shell.orchestration.rmt`
10
+ - `/home/konni/Dokumente/net.ccs.cloud/media-manager/docs/xtend-component-bugfixes.md`
11
+
12
+ ## Problem
13
+
14
+ Die Media-Manager-Integration zeigt, dass die neuen RMT App-Platform-
15
+ Primitives fachlich richtig sind, die Developer Experience aber noch in zwei
16
+ Authoring-Modelle zerfaellt.
17
+
18
+ - RMT vNext ist die verstaendliche, menschenfreundliche Developer-Syntax.
19
+ - App-Platform-Primitives liegen aktuell in einer separaten JSON-foermigen
20
+ Quelle.
21
+ - Der klassische RMT-Build besitzt weiterhin den Scaffold-/Core-
22
+ Kompatibilitaetspfad.
23
+ - Entwickler muessen wissen, welcher Compiler welche Ebene besitzt, bevor sie
24
+ eine koharente App Shell bauen koennen.
25
+
26
+ Damit verliert RMT einen Teil seines Plattformwertes. Eine Plattform ist nur
27
+ dann glaubwuerdig, wenn App-Autoren die komplette Produkt-Shell in einer
28
+ einheitlichen, lesbaren und diagnostizierbaren Authoring Experience ausdruecken
29
+ koennen.
30
+
31
+ ## Epic-Ziel
32
+
33
+ Das naechste RMT-Epic muss den vNext-Compiler massiv erweitern: App-Autoren
34
+ muessen App-Platform-Primitives direkt in RMT vNext deklarieren koennen.
35
+
36
+ RMT Legacy und kompatible JSON-Zwischenformate sollen in den Hintergrund
37
+ treten. Entwickler sollen fuer normale App-Shell-Arbeit nicht mehr in Legacy-
38
+ Formaten arbeiten muessen. Die primaere Authoring-Oberflaeche ist vNext; der
39
+ Compiler senkt diese Quelle in alle Runtime-Artefakte ab, die Kernel, Fabric
40
+ und UI-Host brauchen.
41
+
42
+ ## Erforderliche vNext-Primitive-Oberflaeche
43
+
44
+ Grammar, Parser, Semantic Graph und Compiler-Output von vNext muessen
45
+ mindestens diese Primitive-Familien tragen:
46
+
47
+ | Primitive-Familie | Erforderliche vNext-Faehigkeit |
48
+ |-------------------|--------------------------------|
49
+ | App Shell | template, route, root, Shell Chrome, Slots und stabile Islands |
50
+ | Components | Component refs, Attribute, Textknoten, Slots, keyed Lists, Conditions und DOM Descriptoren |
51
+ | State | State Records, Selectors, derived Values, Reducers, Persistenz und XState-Bridge-Hints |
52
+ | Data | Fixtures, REST-Endpunkte, SSR-Payloads, Streams, Pagination und Schema-Contracts |
53
+ | Actions | Action-Deklarationen, async Effects, Loading-/Success-/Error-Status, Retries und Result Routing |
54
+ | Events | DOM-/Custom-Event-Bindings, Payload Contracts, Governance, Bubbling-/Capture-Policy und Action-Ziele |
55
+ | Surfaces | statische Surfaces, dynamische keyed Surface-Repeater, Bounds, Focus, Close, Minimize, Restore und Persistenz |
56
+ | Overlays | Tooltip-, Toast-, Lightbox-, Popover-, Dialog- und Menu-Portal-Semantik |
57
+ | Resources | Object URLs, Streams, Observer, Timer, Lazy Imports und owner-scoped Teardown |
58
+ | Security | Trust Boundaries, Sanitizer Policies, Import Policy und No-Kernel-Host-Import-Assertions |
59
+ | Diagnostics | Source Maps, Source Pointer, Primitive IDs, Schedule Refs und Runtime Correlation IDs |
60
+
61
+ Das Ergebnis muss erlauben, eine granulare App Shell ausschliesslich in RMT
62
+ vNext aufzubauen. Host-Adapter duerfen weiterhin Endpunkte, Component-Imports
63
+ und Browser-Ausfuehrung bereitstellen. UI-Struktur, State Graph, Event Routing,
64
+ Effects und Lifecycle Ownership muessen aber aus vNext-Source stammen.
65
+
66
+ ## Compiler-Anforderungen
67
+
68
+ Der Compiler muss zu einer vollstaendigen App-Platform-Lowering-Pipeline
69
+ werden:
70
+
71
+ 1. vNext-Primitive-Syntax in eine typisierte AST parsen.
72
+ 2. Einen Semantic Graph fuer Components, State, Selectors, Actions, Events,
73
+ Surfaces, Portals, Overlays, Resources und DataSources aufbauen.
74
+ 3. Referenzen und Contracts vor der Runtime validieren.
75
+ 4. Deterministische RMT-Core-Records fuer Kernel-Ingestion erzeugen.
76
+ 5. App-Platform-Buildreports, Diagnosen und Source Maps aus derselben vNext-
77
+ Quelle erzeugen.
78
+ 6. Scaffold- und Runtime-Adapter-Artefakte fuer XTend UI erzeugen, ohne App-
79
+ Autoren in generierte oder Legacy-Zwischenformate zu zwingen.
80
+ 7. Source-to-Runtime-Korrelation fuer jedes sichtbare Objekt und jedes Event
81
+ erhalten.
82
+ 8. Die RMT-Kernel-Grenze frameworkneutral halten: keine XTend-Component-
83
+ Imports im Kernel, kein Fabric-Import im Kernel und keine Browser-Annahmen
84
+ in Core Records.
85
+
86
+ Der alte Kompatibilitaetspfad darf als Compiler-Target weiter existieren, darf
87
+ aber nicht der Authoring-Pfad sein.
88
+
89
+ ## Kernel-Retest nach dem Upgrade
90
+
91
+ Nach dem Compiler-Upgrade muss der neue Output erneut gegen den RMT-Kernel
92
+ getestet werden. Es reicht nicht, zu beweisen, dass vNext parsen und JSON
93
+ erzeugen kann. Beweisbar sein muss, dass vNext-authorierte Primitives den
94
+ Runtime-Stack treiben koennen.
95
+
96
+ Der Kernel-Gate muss zeigen:
97
+
98
+ - vNext-Source kann Lanes und Fibers ueber erstklassige Syntax deklarieren.
99
+ - Der Compiler senkt diese Deklarationen in kernel-lesbare Schedule- und
100
+ Lifecycle-Records ab.
101
+ - Der RMT-Kernel kann diese Records ohne framework-spezifische Imports
102
+ ingestieren.
103
+ - Fabric kann die erwarteten Lanes, Fibers und Schedule Refs empfangen oder
104
+ ableiten.
105
+ - Der UI-Host kann das angeforderte Objekt oder Event materialisieren.
106
+ - Ein Headless-Browser kann das finale Objekt, die State-Aenderung oder das
107
+ Event im sichtbaren Viewport beobachten.
108
+
109
+ ## Source-to-Sea-Fullstack-Gate
110
+
111
+ Fuer RMT vNext ist ein optionales "source to sea"-Evidence-Gate vorzuhalten.
112
+
113
+ Das Gate rekonstruiert den Lifecycle eines UI-Objektes von RMT-Source bis zur
114
+ Browser-Evidence:
115
+
116
+ ```text
117
+ RMT vNext source
118
+ -> parser AST
119
+ -> semantic primitive graph
120
+ -> compiler core/app artifacts
121
+ -> RMT kernel schedule/lifecycle ingestion
122
+ -> Fabric lane/fiber telemetry
123
+ -> XTend UI host adapter
124
+ -> DOM/custom-element materialization
125
+ -> visible headless-browser viewport assertion
126
+ ```
127
+
128
+ Das Gate muss fehlschlagen, wenn ein Korrelationsglied fehlt. Dieselbe
129
+ Primitive ID muss ueber Source-Map-Pointer, Compiler-Output, Kernel-Record,
130
+ Fabric-Fiber, DOM-Marker und Browser-Assertion nachvollziehbar sein.
131
+
132
+ ### Minimale Fixture
133
+
134
+ Eine kleine vNext-Fixture soll deklarieren:
135
+
136
+ - ein sichtbares Component-Objekt, zum Beispiel Status-, Toast- oder Card-
137
+ Surface;
138
+ - ein user-facing Event, zum Beispiel Button-Click oder Custom-Component-
139
+ Event;
140
+ - eine Action oder einen Effect mit Success-Status;
141
+ - ein State Update und einen Selector;
142
+ - eine Fabric-Lane- und Fiber-Erwartung;
143
+ - eine Resource- oder Surface-Lifecycle-Grenze.
144
+
145
+ Der Browser-Smoke muss das Event ausloesen und pruefen:
146
+
147
+ - Das Objekt existiert im Viewport.
148
+ - State oder Text aendert sich sichtbar.
149
+ - Das Event wird mit der erwarteten RMT Action ID aufgezeichnet.
150
+ - Fabric meldet die erwartete Lane-/Fiber-Metadaten.
151
+ - Kernel-Diagnosen enthalten den erwarteten Schedule-/Lifecycle-Record.
152
+ - Source-Map-Metadaten zeigen auf die vNext-Source-Position zurueck.
153
+
154
+ ## Evidence Contract
155
+
156
+ Das Fullstack-Gate schreibt eine maschinenlesbare Evidence-Datei. Der
157
+ artefaktierte Report nutzt
158
+ `xtend.rmt.vnext.source-to-sea-evidence-report.v1` und liegt unter
159
+ `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json`; die
160
+ eingebettete Lifecycle-Evidence bleibt
161
+ `xtend.rmt.vnext.source-to-sea-evidence.v1`.
162
+
163
+ Beispiel der eingebetteten Lifecycle-Evidence:
164
+
165
+ ```json
166
+ {
167
+ "schema": "xtend.rmt.vnext.source-to-sea-evidence.v1",
168
+ "source": "tests/rmt-language/fixtures/vnext-source-to-sea.rmt",
169
+ "primitiveId": "demo.feedback.status",
170
+ "sourcePointer": "/events/0",
171
+ "compiler": {
172
+ "ok": true,
173
+ "artifactCount": 9
174
+ },
175
+ "kernel": {
176
+ "ingested": true,
177
+ "scheduleRef": "schedule:demo.feedback/demo.feedback.status/visible"
178
+ },
179
+ "fabric": {
180
+ "schema": "xtend.rmt.vnext.fabric-bridge-evidence.v1",
181
+ "workpackage": "RMT-VNEXT-PRIM-05",
182
+ "lane": "visible",
183
+ "fiber": "fiber:demo.feedback/demo.feedback.status/visible/0",
184
+ "scheduleRef": "component.visible.hydrate",
185
+ "endpointName": "xtendrmt.component.hydrate",
186
+ "telemetry": {
187
+ "schema": "xtend.fabric.telemetry-snapshot.v1",
188
+ "fiberCount": 6
189
+ },
190
+ "hostAdapter": {
191
+ "schema": "xtend.component.lifecycle-telemetry.v1",
192
+ "source": "xtend.component-adapter",
193
+ "operation": "hydrate"
194
+ }
195
+ },
196
+ "ui": {
197
+ "selector": "[data-rmt-primitive-id=\"demo.feedback.status\"]",
198
+ "visible": true,
199
+ "text": "Saved"
200
+ },
201
+ "browser": {
202
+ "viewportAsserted": true,
203
+ "eventObserved": true
204
+ }
205
+ }
206
+ ```
207
+
208
+ ## Aktueller Stand am 2026-05-20
209
+
210
+ Die erste Compiler- und DX-Schiene fuer vNext-Primitives ist release-gated:
211
+
212
+ - `RMT-VNEXT-PRIM-01` bis `RMT-VNEXT-PRIM-04` sind abgeschlossen. Grammar,
213
+ Parser/AST, Semantic Graph und Lowering erzeugen deterministische Core-,
214
+ App-Platform- und Kernel-Records aus vNext-Source.
215
+ - `RMT-VNEXT-PRIM-06` besitzt eine deterministische Source-to-Sea-Scheibe.
216
+ `createRmtVNextSourceToSeaEvidence(...)` korreliert vNext-Source-Maps,
217
+ Kernel-Schedules, ableitbare Fabric-Fiber, UI-Marker und Browser-Probe.
218
+ - `RMT-VNEXT-PRIM-06` besitzt ausserdem einen Browser-Execution-Pfad.
219
+ `runRmtVNextSourceToSeaBrowserExecution(...)` kann dieselbe Fixture per
220
+ WebDriver, ChromeDriver oder Safari-Driver oeffnen,
221
+ `window.__xtendRmtVNextSourceToSeaResult` auslesen und das echte Browser-
222
+ Ergebnis gegen Compiler-, Kernel- und Fabric-Evidence vergleichen. Ohne
223
+ lokale Browser-Umgebung bleibt der Standardlauf als Fixture-Contract
224
+ deterministisch.
225
+ - `RMT-VNEXT-PRIM-06` schreibt die Source-to-Sea-Evidence nun als Release-
226
+ Artefakt. `node scripts/capture_rmt_vnext_source_to_sea_evidence.js`
227
+ erzeugt `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json`;
228
+ `npm run test:rmt-vnext-source-to-sea:browser-required` schaltet denselben
229
+ Pfad fuer explizite lokale Headless-Profile verpflichtend.
230
+ - `RMT-VNEXT-PRIM-06` ist in GitHub Actions jetzt optionale Browser-Evidence.
231
+ Der Job `rmt-vnext-primitive-gates` nutzt
232
+ `npm run test:rmt-vnext-source-to-sea:chromedriver` nur bei manuellem
233
+ `workflow_dispatch` mit `run_source_to_sea=true` und uploaded danach das
234
+ gleiche Source-to-Sea-Evidence-Artefakt.
235
+ - ChromeDriver-Auto-Cleanup ist fuer lokale Snap-/Chromium-Installationen
236
+ robust. Der automatisch gestartete ChromeDriver wird zuerst ueber den
237
+ WebDriver-Endpunkt `/shutdown` beendet; `process.kill()` bleibt nur Fallback.
238
+ Damit laeuft `npm run test:rmt-vnext-source-to-sea:chromedriver` lokal mit
239
+ Required-Browser-Policy durch und artefaktiert `driver: "chromedriver"`,
240
+ `objectCount: 4`, ein Cross-Primitive-Event, zwei Route-Switches und zwei
241
+ Route-Lifecycle-Cycles.
242
+ - `RMT-VNEXT-PRIM-06` besitzt nun eine Multi-Object-Scheibe. Die Fixture
243
+ korreliert `demo.feedback.status` und `demo.feedback.toast` als zwei
244
+ gleichzeitige sichtbare Primitives ueber vNext-Source, Kernel-Schedules,
245
+ Fabric-Fibers, UI-Marker und Browser-Probe.
246
+ - Die Multi-Object-Scheibe deckt jetzt getrennte Lanes und ein
247
+ Cross-Primitive-Event ab: `demo.feedback.status` laeuft sichtbar,
248
+ `demo.feedback.toast` laeuft auf `idle`, und `demo.feedback.save` reduziert
249
+ den Toast-State und emittiert `demo.feedback.toast.promoted`.
250
+ - Die Cross-Primitive-Matrix deckt nun auch einen mehrstufigen Cross-Route-
251
+ Event ab: Nach dem Route-Mount fuehrt `demo.feedback.detail.ack ->
252
+ demo.feedback.audit` ueber `demo.feedback.audit.escalated` und
253
+ `state.demo.feedback.audit.text` von einem `transition`-Target zum naechsten.
254
+ Das Browser-Result muss zwei Cross-Primitive-Events ausweisen und fuer den
255
+ zweiten Eintrag `stage: "route-target"`, `sourceLane: "transition"` und
256
+ `targetLane: "transition"` melden.
257
+ - Die Browser-Matrix fuehrt zusaetzlich einen Route-Switch als PRIM-06-
258
+ Evidence: `demo.feedback.save` wechselt von `/rmt-vnext-source-to-sea` nach
259
+ `/rmt-vnext-source-to-sea/toast`, nutzt `ui.user-blocking.input` fuer
260
+ Navigation, `route.transition.render` fuer Rendering und schreibt diese
261
+ Route-Telemetrie in den Browser-Required-Result.
262
+ - Der Route-Switch besitzt jetzt ein echtes Route-Target-Objekt:
263
+ `demo.feedback.detail` wird in vNext als eigenes Surface mit
264
+ `transition`-Lane authoriert, bleibt in der Browser-Fixture initial
265
+ ungemountet und wird erst nach dem Route-Wechsel sichtbar. Die Matrix
266
+ korreliert Source, Kernel-Schedule, Fabric-Fiber, Route-Render-Schedule,
267
+ UI-Marker und Browser-Viewport.
268
+ - Der Route-Target-Slice besitzt jetzt auch Remount-/Unmount-Evidence:
269
+ `demo.feedback.detail` wird nach dem ersten Mount wieder ungemountet,
270
+ `demo.feedback.detailTimer` wird ueber `dispose on surface.destroy` als
271
+ Resource-Cleanup nachgewiesen, und das Target wird anschliessend erneut ueber
272
+ `route.transition.render` sichtbar gemountet.
273
+ - Der Route-Lifecycle-Slice deckt nun mehrere Targets ab. Zusaetzlich zu
274
+ `demo.feedback.detail` wird `demo.feedback.audit` als zweites vNext-
275
+ authoriertes Route-Target mit eigener `transition`-Lane und
276
+ `demo.feedback.auditTimer` gemountet. Der echte Browser-Required-Lauf muss
277
+ zwei sequenzielle Route-Switches sowie getrennte `unmountCount`-/
278
+ `remountCount`-Paare pro Target mit `countsMatch: true` reporten.
279
+ - Die Route-Lifecycle-Matrix deckt jetzt mehrere Cleanup-Resource-Arten pro
280
+ Target ab. `demo.feedback.audit` besitzt neben dem Timer auch
281
+ `demo.feedback.auditSubscription` mit `kind subscription`; die statische
282
+ Object-Matrix und das echte Browser-Result muessen beide Resource IDs,
283
+ `resourceKinds: ["timer", "subscription"]` und `resourceDisposed: true`
284
+ fuer den Audit-Zyklus ausweisen.
285
+ - Negative Cleanup-Diagnosen sind im Gate verankert. Die Fixture
286
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-invalid.rmt`
287
+ laesst `demo.feedback.detailTimer` absichtlich ohne
288
+ `dispose on surface.destroy`; die Route-Lifecycle-Matrix muss kontrolliert
289
+ fehlschlagen und
290
+ `rmt.vnext.source_to_sea.cleanup_dispose_policy_missing` melden.
291
+ - Owner-Mismatch-Diagnosen sind ebenfalls gatebar. Die Fixture
292
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-owner-invalid.rmt`
293
+ besitzt zwar `dispose on surface.destroy`, bindet
294
+ `demo.feedback.detailTimer` aber absichtlich an
295
+ `surface.demo.feedback.toast`; die Route-Lifecycle-Matrix muss
296
+ `rmt.vnext.source_to_sea.cleanup_owner_mismatch` melden und den falschen
297
+ Owner in der Evidence ausweisen.
298
+ - Fehlende Cleanup-Resource-Records sind jetzt ebenfalls gatebar. Die Fixture
299
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-resource-missing.rmt`
300
+ laesst das Route-Target `demo.feedback.audit` bestehen, entfernt aber
301
+ `demo.feedback.auditTimer` vollstaendig aus der vNext-Quelle. Die Matrix muss
302
+ gezielt fuer `demo.feedback.audit` mit
303
+ `rmt.vnext.source_to_sea.cleanup_resource_missing` fehlschlagen, waehrend der
304
+ `demo.feedback.detail`-Lifecycle weiter `passed` bleibt.
305
+ - Resource-Kind-Drift ist jetzt ebenfalls gatebar. Die Fixture
306
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-kind-invalid.rmt`
307
+ bindet `demo.feedback.auditSubscription` weiterhin an
308
+ `surface.demo.feedback.audit` und behaelt `dispose on surface.destroy`,
309
+ deklariert sie aber absichtlich als `kind cache`. Die Matrix muss mit
310
+ `rmt.vnext.source_to_sea.cleanup_kind_mismatch` fehlschlagen und zugleich
311
+ `expectedKind: "subscription"` sowie `actualKind: "cache"` ausweisen.
312
+ - Der ChromeDriver-Evidence-Report besitzt jetzt eine eigene
313
+ CI-Artefaktvalidierung:
314
+ `xtend.rmt.vnext.source-to-sea-ci-artifact-validation.v1`. Im lokalen
315
+ Browser-Skip-Modus bleibt sie `skipped`; im Required-Browser-Pfad muss sie
316
+ `passed` sein und `objectCount: 4`, zwei Cross-Primitive-Events, zwei
317
+ Route-Switches, zwei Route-Lifecycle-Cycles, `targetMounted`,
318
+ `targetVisible`, `countsMatch` sowie die Audit-Resources
319
+ `demo.feedback.auditTimer` und `demo.feedback.auditSubscription`
320
+ nachweisen.
321
+ - `RMT-VNEXT-PRIM-07` besitzt die erste Tooling-Scheibe fuer Completions,
322
+ Hover, Symbols und Docs, damit vNext der Default-Autorenpfad bleibt.
323
+ - `RMT-VNEXT-PRIM-07` besitzt nun auch cursor-nahe Primitive-Completions:
324
+ `getRmtVNextToolingCompletions(...)` und der Language Server koennen
325
+ State-Klauseln, Resource-Kinds und Action-Teilwoerter aus Position,
326
+ Source-Map-Pointer und aktueller Zeile ableiten, ohne dass Editoren
327
+ explizit `xtend.context` setzen muessen.
328
+ - `RMT-VNEXT-PRIM-07` besitzt die erste Quick-Fix-Scheibe:
329
+ `getRmtVNextToolingCodeActions(...)` und `textDocument/codeAction` erzeugen
330
+ sichere Workspace-Edits fuer `owner-missing`, `unkeyed-repeat` und
331
+ `payload-contract-missing`, sodass vNext-Autoren Primitive-Fehler direkt im
332
+ Editor reparieren koennen.
333
+ - `RMT-VNEXT-PRIM-07` besitzt nun eine zweite Quick-Fix-Scheibe:
334
+ `initial-missing`, `resource-kind-missing` sowie `unknown-reference` fuer
335
+ Selector- und Portal-Referenzen bekommen source-erhaltende Reparaturen. Damit
336
+ fuehrt die vNext-DX Autoren von typischen Tipp-/Geruestluecken direkt zur
337
+ gueltigen Primitive-Struktur.
338
+ - `RMT-VNEXT-PRIM-07` besitzt die Action-Authoring-Scheibe:
339
+ `action-reducer-missing` und `effect-source-missing` erzeugen sichere
340
+ Textedits fuer Reducer-Ziele und `effect fetch datasource`-Quellen.
341
+ `kernel-boundary` bleibt bewusst ein Command-Handoff ohne Textedit, damit
342
+ Kernel-/Fabric-Imports in Host-Adapter ausgelagert werden.
343
+ - `RMT-VNEXT-PRIM-07` besitzt die Preview-/Fix-All-Scheibe:
344
+ jede Primitive-Code-Action traegt eine
345
+ `xtend.rmt.vnext.primitive-code-action-preview.v1` Preview, und
346
+ `source.fixAll.rmt.vnext.primitives` buendelt alle sicheren Textedit-
347
+ Reparaturen eines Dokuments. Manuelle Boundary-Commands bleiben aus der
348
+ Sammelanwendung ausgeschlossen.
349
+ - `RMT-VNEXT-PRIM-07` besitzt nun auch den Command-Handoff fuer manuelle
350
+ Boundary-Faelle: der Language Server meldet
351
+ `xtend.rmt.vnext.extractKernelImport` als `workspace/executeCommand` und
352
+ liefert `xtend.rmt.vnext.primitive-command-handoff.v1` ohne WorkspaceEdit
353
+ zurueck. Damit kann ein Editor Kernel-/Fabric-Importverletzungen sichtbar in
354
+ einen Host-Adapter-Pfad ueberfuehren, ohne vNext-Source automatisch
355
+ framework-spezifisch umzuschreiben.
356
+ - `RMT-VNEXT-PRIM-07` besitzt jetzt die erste VS-Code-Bridge-Apply-
357
+ Experience: `tools/rmt-editor/vscode/extension.js` klassifiziert
358
+ vNext-Primitive-CodeActions in `workspace-edit`, `fix-all` und
359
+ `manual-command`, exponiert vier VS-Code-Commands und rendert
360
+ `xtend.rmt.editor.vscode-primitive-authoring-experience.v1` im Output
361
+ Channel. Damit ist die DX nicht nur protokolliert, sondern im Editor
362
+ sichtbar.
363
+ - `RMT-VNEXT-PRIM-07` ist abgeschlossen. Die VS-Code-Bridge liest nun ohne
364
+ uebergebenen Report das aktive `.rmt`-Dokument, fragt den lokalen RMT
365
+ Language Server in-process per `textDocument/codeAction` ab, bietet
366
+ QuickPick-Pfade fuer Preview/Fix-All/Handoff und wendet nur sichere
367
+ WorkspaceEdits an. `kernel-boundary` bleibt ein sichtbarer manueller
368
+ Handoff ohne `WorkspaceEdit`.
369
+ - `RMT-VNEXT-PRIM-08` besitzt die erste Migration-Scheibe:
370
+ App-Platform-Primitive-JSON wird als Legacy-Target erkannt, gespiegelt und
371
+ mit vNext-Migrationsdiagnosen versehen.
372
+ - `RMT-VNEXT-PRIM-08` ist abgeschlossen. Der neue
373
+ `xtend.rmt.vnext.primitive-migration-apply-plan.v1` Apply-Plan erzeugt aus
374
+ App-Platform-Primitive-JSON denselben vNext-Draft wie die Preview, weist
375
+ einen `.vnext.rmt`-Zielpfad aus, prueft den Draft gegen den vNext-Compiler
376
+ und setzt `automaticWrite: false`. Die Compatibility-Reports unterscheiden
377
+ nun `report-only`, `preview-ready`, `apply-plan-ready` und `blocked`;
378
+ Legacy bleibt Mirror/Compiler-Target, nicht Authoring-Pfad.
379
+ - `RMT-VNEXT-PRIM-05` ist abgeschlossen. Das neue standalone Gate
380
+ `rmt-vnext-fabric-bridge` prueft die Fabric/RMT-Lane-Aufloesung, die
381
+ primaere Fabric-Runtime-Fiber, die Lane-Matrix, Host-Adapter-Telemetrie,
382
+ Route-/Component-Fiber, Telemetry-Snapshot und Browser-Marker als eigenen
383
+ PRIM-05-Contract.
384
+ - Die Release-Matrix enthaelt nun das Primitive-Aggregat
385
+ `npm run test:rmt-vnext-primitives:report`; der Report wird unter
386
+ `.xtend-test-results/xtend-rmt-vnext-primitives-gate-report.json`
387
+ geschrieben.
388
+ - GitHub Actions fuehren die Primitive-Gates im Job
389
+ `rmt-vnext-primitive-gates` aus. Das Gate umfasst Parser, Compiler,
390
+ Semantic Graph, Source-to-Sea, Tooling, Compatibility und Type-Exports und
391
+ laedt die Source-to-Sea-Evidence als eigenes Artefakt hoch.
392
+ - Der Source-to-Sea-Evidence-Report enthaelt jetzt ein maschinenlesbares
393
+ CI-Artefakt-Gate. `createRmtVNextSourceToSeaCiArtifactValidation(...)`
394
+ vergleicht den geschriebenen ChromeDriver-Report gegen die erwartete PRIM-06-
395
+ Matrix und schlaegt bei Objekt-, Route-, Lifecycle- oder Resource-Drift fehl.
396
+ - Der CI-Artefakt-Pfad ist nun replaybar:
397
+ `test:rmt-vnext-source-to-sea:validate-artifact` ruft
398
+ `validateRmtVNextSourceToSeaCiArtifactFile(...)` auf, validiert ein bereits
399
+ geschriebenes ChromeDriver-Release-Artefakt ohne neuen Browser-Lauf und
400
+ faellt fuer fehlende, nicht parsebare oder gedriftete Artefakte geschlossen
401
+ durch.
402
+ - Cross-Route-Drift ist nun als negativer Runtime-Slice gatebar. Die Browser-
403
+ Probe `tests/browser/fixtures/rmt-vnext-source-to-sea-cross-route-invalid.html`
404
+ verdrahtet `demo.feedback.detail.ack` absichtlich auf das falsche
405
+ Ziel-Primitive und muss ueber
406
+ `cross event route-target state belongs to target primitive`,
407
+ `cross event route-target event belongs to target primitive` sowie
408
+ `cross event route-target stage uses transition lanes` fehlschlagen.
409
+ - Browser-Result-Drift ist nun ebenfalls ohne neuen Browserstart pruefbar.
410
+ `xtend.rmt.vnext.source-to-sea-browser-result-validation.v1` und
411
+ `createRmtVNextSourceToSeaBrowserResultValidation(...)` validieren die
412
+ ChromeDriver-Resultstruktur direkt; Route-Switch-Drift muss ueber
413
+ `browser execution route switches pass` und Lifecycle-Zaehler-Drift ueber
414
+ `browser execution route lifecycle cycles pass` fehlschlagen.
415
+ Cross-Primitive-Event-Drift und Viewport-/Objektstatus-Drift muessen
416
+ entsprechend ueber `browser execution cross-primitive events pass` und
417
+ `browser execution object matrix passes` fehlschlagen.
418
+ - Der Release-Handoff haelt `npm run test:rmt-semantic-graph` und
419
+ `npm run test:rmt-vnext-primitives:report` als verpflichtende Gates; Source-
420
+ to-Sea und Evidence-Capture bleiben optionale Browser-Evidence.
421
+ - Der vollstaendige Release-Report wurde lokal erneut erfolgreich gefahren.
422
+ Lokale Browser-/Loopback-Skips bleiben akzeptierte Umgebungsresiduen; die
423
+ Primitive-, PR-, Pack- und Release-Reports sind konsistent.
424
+
425
+ `RMT-VNEXT-PRIM-06`, `RMT-VNEXT-PRIM-07` und `RMT-VNEXT-PRIM-08` sind lokal
426
+ abgeschlossen. Paket 6 deckt Source -> Kernel -> Fabric -> UI -> Browser,
427
+ ChromeDriver-Required-Evidence, CI-Artefakt-Replay und negative Drift-Faelle
428
+ fuer Cross-Route, Route-Switch, Lifecycle, Cross-Primitive-Events und
429
+ Viewport-/Objektstatus ab. Paket 7 macht diese Primitive-Diagnosen im Editor
430
+ aktiv anwendbar. Paket 8 liefert den deterministischen Legacy-Backgrounding-
431
+ und Migration-Apply-Plan. Der echte GitHub-Actions-Artefaktabgleich bleibt ein
432
+ Release-Handoff-Schritt fuer den Release-Branch, nicht mehr ein lokaler
433
+ Implementierungsblock der Pakete.
434
+
435
+ ## Workpackages
436
+
437
+ | ID | Prioritaet | Status | Titel | Akzeptanz |
438
+ |----|------------|--------|-------|-----------|
439
+ | `RMT-VNEXT-PRIM-01` | P0 | completed | vNext Primitive Grammar Design | Syntax deckt State, Selectors, Actions, Events, Data, Surfaces, Overlays, Portals und Resources ab, ohne auf JSON-Authoring auszuweichen. |
440
+ | `RMT-VNEXT-PRIM-02` | P0 | completed | Parser- und AST-Upgrade | Parser erzeugt typisierte AST-Nodes mit stabilen Source Ranges fuer jedes Primitive. |
441
+ | `RMT-VNEXT-PRIM-03` | P0 | completed | Semantic Graph und Diagnostics | Cross-Reference-, Ownership-, Event-Payload- und Trust-Boundary-Diagnosen laufen vor der Runtime. |
442
+ | `RMT-VNEXT-PRIM-04` | P0 | completed | Compiler-Lowering in Kernel Records | vNext-Primitives werden in deterministische Core-/App-Artefakte abgesenkt, die der RMT-Kernel ingestieren kann. |
443
+ | `RMT-VNEXT-PRIM-05` | P0 | completed | Fabric Lane/Fiber Bridge Evidence | vNext-authorierte Lanes und Fibers sind in Fabric-Telemetrie sichtbar, ohne Fabric in den Kernel zu importieren. |
444
+ | `RMT-VNEXT-PRIM-06` | P0 | completed | Source-to-Sea Browser Gate | Ein Headless-Browser-Test beweist Source -> Kernel -> Fabric -> UI -> Viewport fuer sichtbare Objekt-, Route-, Event- und Lifecycle-Pfade. |
445
+ | `RMT-VNEXT-PRIM-07` | P1 | completed | Language Server und Authoring Docs | Completions, Hover, Symbols, CodeActions, Safe-Fix-All und VS-Code-Bridge lehren vNext-Primitive-Syntax als primaere Developer Experience. |
446
+ | `RMT-VNEXT-PRIM-08` | P1 | completed | Migration und Legacy-Backgrounding | Bestehende App-Platform-JSON-Fixtures koennen per Preview/Apply-Plan nach vNext konvertiert oder gespiegelt werden; Legacy bleibt Target, nicht Workflow. |
447
+
448
+ ## Akzeptanzkriterien
449
+
450
+ - App-Autoren koennen eine granulare App Shell nur in RMT vNext deklarieren.
451
+ - Der Compiler erzeugt App-Platform-Primitive-Reports aus vNext-Source.
452
+ - RMT Legacy oder JSON-Primitive-Dateien sind fuer normales Authoring nicht
453
+ erforderlich.
454
+ - Kernel-, Fabric- und UI-Evidence lassen sich ueber Primitive ID und Source
455
+ Pointer korrelieren.
456
+ - Fabric-Lane-/Fiber-Evidence wird aus vNext-Source-Maps,
457
+ `kernelRecords.schedules`, `kernelRecords.fibers`, Fabric Runtime Telemetry
458
+ und Browser-Markern rekonstruiert.
459
+ - Das Source-to-Sea-Gate ist Teil der RMT-Release-Gate-Matrix.
460
+ - Das Primitive-Aggregat laeuft in GitHub Actions und im lokalen Release-
461
+ Report als eigenstaendiges Gate.
462
+ - Docs und Language Tooling praesentieren vNext als Default-Pfad und Legacy als
463
+ Kompatibilitaetsziel.
464
+
465
+ ## Gestartete Arbeit
466
+
467
+ - `RMT-VNEXT-PRIM-01` ist abgeschlossen.
468
+ - Syntax-Contract: [RMT vNext Primitive Grammar Design](./rmt-vnext-primitive-grammar-design.md)
469
+ - Design-Fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
470
+ - `RMT-VNEXT-PRIM-02` ist abgeschlossen.
471
+ - Parser-/AST-Handoff: [RMT vNext Primitive Parser AST](./rmt-vnext-primitive-parser-ast.md)
472
+ - `RMT-VNEXT-PRIM-03` ist abgeschlossen.
473
+ - Semantic-Graph-Handoff: [RMT vNext Primitive Semantic Graph](./rmt-vnext-primitive-semantic-graph.md)
474
+ - Neue API: `buildRmtVNextPrimitiveSemanticGraph(...)` in
475
+ `tools/rmt-language/semantic-graph.js`
476
+ - `RMT-VNEXT-PRIM-04` ist abgeschlossen.
477
+ - Lowering-Handoff: [RMT vNext Primitive Lowering](./rmt-vnext-primitive-lowering.md)
478
+ - Compiler-API: `compileRmtVNextSource(...)` nutzt den PRIM-03 Graph als
479
+ Pre-Lowering-Gate und erzeugt `appPlatform` sowie `kernelRecords`.
480
+ - `RMT-VNEXT-PRIM-05` ist abgeschlossen.
481
+ - Fabric-Bridge-Handoff: [RMT vNext Fabric Bridge Evidence](./rmt-vnext-fabric-bridge-evidence.md)
482
+ - Fabric-Bridge-Evidence:
483
+ `createRmtVNextFabricBridgeEvidence(...)` erzeugt aus PRIM-04
484
+ Kernel-Schedules und Fibers eine echte `xtend.fabric.fiber.v1`, loest sie
485
+ ueber `xtend.fabric.rmt-lane-mapping.v1` auf und korreliert sie mit einem
486
+ `xtend.fabric.telemetry-snapshot.v1`.
487
+ - Browser-Marker:
488
+ `tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html` traegt
489
+ `data-xtend-fabric-lane`, `data-xtend-fabric-fiber` und
490
+ `data-xtend-fabric-schedule`, damit die Fabric-Bruecke bis in den Viewport
491
+ sichtbar bleibt.
492
+ - Lane-Matrix:
493
+ `RMT_VNEXT_FABRIC_BRIDGE_LANE_MATRIX` haertet die Bridge fuer
494
+ `user-blocking`, `transition`, `idle`, `background` und `diagnostics`.
495
+ Jede Lane erzeugt eine abgeschlossene `xtend.fabric.fiber.v1`, eine
496
+ `xtend.fabric.rmt-lane-mapping.v1`-Entscheidung und einen
497
+ `xtend.fabric.telemetry-snapshot.v1`-Schedule-Eintrag.
498
+ - Host-/Adapter-Telemetrie:
499
+ Die Source-to-Sea-Bridge liest `xtend.component.lifecycle-telemetry.v1` aus
500
+ der Browser-Probe, normalisiert sie ueber `fabric.recordComponentTelemetry(...)`
501
+ und weist sie im Fabric-Telemetry-Snapshot nach. Damit ist die XTend UI Host-
502
+ Adapter-Ebene nicht mehr nur statischer DOM-Marker, sondern Teil der
503
+ PRIM-05-Evidence.
504
+ - Route-/Component-Fiber:
505
+ Die Bridge nutzt nun `createComponentFiberInstrumentation(...)` fuer
506
+ `component.mount` und `component.hydrate` sowie
507
+ `createRouteFiberInstrumentation(...)` fuer `route.navigate` und
508
+ `route.render`. Die Evidence prueft die Schedule Refs
509
+ `component.visible.mount`, `component.idle.hydrate`,
510
+ `ui.user-blocking.input` und `route.transition.render` bis in den Fabric-
511
+ Telemetry-Snapshot.
512
+ - Standalone Gate:
513
+ `tests/rmt-language/rmt_vnext_fabric_bridge_suite.js` validiert PRIM-05 als
514
+ eigenes Release-Gate. `npm run test:rmt-vnext-primitives:report` enthaelt
515
+ jetzt `rmt-vnext-fabric-bridge` vor dem Source-to-Sea-Gate.
516
+ - `RMT-VNEXT-PRIM-06` hat eine erste release-gated Scheibe.
517
+ - Source-to-Sea-Handoff: [RMT vNext Source-to-Sea Gate](./rmt-vnext-source-to-sea-gate.md)
518
+ - Evidence-API: `createRmtVNextSourceToSeaEvidence(...)` korreliert vNext-
519
+ Source-Maps, PRIM-04 Kernel-Records, Fabric-Fiber-Ableitung, UI-Marker und
520
+ Browser-Fixture-Probe.
521
+ - Browser-Execution-Evidence:
522
+ `runRmtVNextSourceToSeaBrowserExecution(...)` liest optional per WebDriver
523
+ den Result-Key `window.__xtendRmtVNextSourceToSeaResult` aus der echten
524
+ Browser-Fixture und vergleicht Primitive ID, Kernel Schedule, Fabric Fiber,
525
+ Fabric Schedule, Host-Adapter-Telemetrie und Action Event mit der
526
+ Source-to-Sea-Evidence. Ohne `RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER` wird
527
+ dieser Schritt als lokaler Umgebungs-Skip dokumentiert, nicht als
528
+ Release-Blocker.
529
+ - Evidence-Report:
530
+ `createRmtVNextSourceToSeaEvidenceReport(...)` und
531
+ `writeRmtVNextSourceToSeaEvidenceReport(...)` kapseln Lifecycle- und Browser-
532
+ Execution-Evidence in
533
+ `xtend.rmt.vnext.source-to-sea-evidence-report.v1`.
534
+ - Release-Artefakt:
535
+ `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json` wird ueber
536
+ `npm run test:rmt-vnext-source-to-sea:evidence` erzeugt. In GitHub Actions
537
+ wird der gleiche Report ueber
538
+ `npm run test:rmt-vnext-source-to-sea:chromedriver` nur bei manuellem
539
+ `workflow_dispatch` mit `run_source_to_sea=true` geschrieben und im Job
540
+ `rmt-vnext-primitive-gates` als
541
+ `xtend-rmt-vnext-source-to-sea-evidence-node-26` hochgeladen.
542
+ - ChromeDriver-Auto-Cleanup:
543
+ `runWebDriverBrowserProbe(...)` beendet automatisch gestartete ChromeDriver
544
+ nun zuerst ueber `/shutdown` und nutzt Prozess-Signale nur als Fallback. Das
545
+ behebt Snap/AppArmor-Umgebungen, in denen ein direkter `kill()` mit `EACCES`
546
+ fehlschlaegt und zuvor ein erfolgreiches Browser-Result ueberschrieben hat.
547
+ Der lokale Required-Browser-Lauf
548
+ `npm run test:rmt-vnext-source-to-sea:chromedriver` ist jetzt `passed`.
549
+ - Object-Matrix:
550
+ `createRmtVNextSourceToSeaObjectMatrix(...)` erzeugt
551
+ `xtend.rmt.vnext.source-to-sea-object-matrix.v1` und beweist vier sichtbare
552
+ Primitive-Lifecycles: `demo.feedback.status`, `demo.feedback.toast`,
553
+ `demo.feedback.detail` und `demo.feedback.audit`. Die Matrix prueft
554
+ getrennte `visible`-/`idle`-/`transition`-Lanes und das Cross-Primitive-
555
+ Event `demo.feedback.status -> demo.feedback.toast`.
556
+ - Cross-Route-Event-Matrix:
557
+ Dieselbe Matrix beweist jetzt ein zweites, route-gebundenes
558
+ Cross-Primitive-Event. `demo.feedback.detail.ack -> demo.feedback.audit`
559
+ reduziert `state.demo.feedback.audit.text`, emittiert
560
+ `demo.feedback.audit.escalated` und muss als `stage: "route-target"` mit
561
+ `sourceLane: "transition"` und `targetLane: "transition"` sowohl statisch als
562
+ auch im echten Browser-Result sichtbar sein.
563
+ - Route-Switch-Matrix:
564
+ Dieselbe Object-Matrix validiert nun zwei sequenzielle Browser-Route-Wechsel:
565
+ `/rmt-vnext-source-to-sea -> /rmt-vnext-source-to-sea/toast` fuer
566
+ `demo.feedback.detail` und
567
+ `/rmt-vnext-source-to-sea/toast -> /rmt-vnext-source-to-sea/audit` fuer
568
+ `demo.feedback.audit`. Beide nutzen `ui.user-blocking.input`,
569
+ `route.transition.render` und die `transition`-Lane. Der echte Browser-
570
+ Execution-Pfad muss zwei `routeSwitches` mit `status: "passed"`,
571
+ `targetMounted: true` und `targetVisible: true` liefern.
572
+ - Route-Lifecycle-Matrix:
573
+ `routeLifecycleCycles` validiert fuer `demo.feedback.detail` und
574
+ `demo.feedback.audit` getrennte wiederholte Route-Zyklen. Die Targets werden
575
+ ungemountet, die Resource-Records `demo.feedback.detailTimer` und
576
+ `demo.feedback.auditTimer` werden gegen `dispose on surface.destroy`
577
+ validiert, und beide Targets werden danach remountet. Der echte Browser-
578
+ Execution-Pfad muss `unmounted`, `remounted`, `resourceDisposed` und
579
+ `countsMatch` als `true` sowie `unmountCount: 1` und `remountCount: 1` pro
580
+ Target reporten.
581
+ - Multi-Resource-Cleanup:
582
+ Der Audit-Zyklus traegt jetzt mehrere Cleanup-Records. Neben
583
+ `demo.feedback.auditTimer` muss auch
584
+ `demo.feedback.auditSubscription` als `kind subscription`, Owner
585
+ `surface.demo.feedback.audit` und `dispose on surface.destroy` durch vNext-
586
+ Lowering, Object-Matrix und Browser-Execution nachweisbar sein. Alte
587
+ `resourceId`-Zyklen bleiben kompatibel; neue Zyklen koennen `resources`
588
+ mit mehreren Resource-IDs und erwarteten Kinds angeben.
589
+ - Negative Cleanup-Kind-Fixture:
590
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-kind-invalid.rmt`
591
+ beweist, dass Multi-Resource-Cleanup nicht nur Existenz, Owner und Dispose-
592
+ Policy prueft, sondern auch die erwartete Resource-Art. Die Matrix erzeugt
593
+ `rmt.vnext.source_to_sea.cleanup_kind_mismatch` fuer
594
+ `demo.feedback.auditSubscription`, haelt `expectedKind: "subscription"` fest
595
+ und weist `actualKind: "cache"` aus.
596
+ - Negative Cleanup-Fixture:
597
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-invalid.rmt`
598
+ beweist, dass derselbe Lifecycle-Cycle ohne Dispose-Policy nicht als
599
+ gueltige Evidence akzeptiert wird. Die Matrix erzeugt den Diagnosecode
600
+ `rmt.vnext.source_to_sea.cleanup_dispose_policy_missing` und haelt die
601
+ fehlende Policy mit `dispose: null` fest.
602
+ - Negative Cleanup-Owner-Fixture:
603
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-owner-invalid.rmt`
604
+ beweist, dass ein Cleanup-Resource-Record mit vorhandener Dispose-Policy
605
+ trotzdem ungueltig ist, wenn der Owner nicht zum Route-Target passt. Die
606
+ Matrix erzeugt `rmt.vnext.source_to_sea.cleanup_owner_mismatch` und weist
607
+ `surface.demo.feedback.toast` als falschen Owner aus.
608
+ - Negative Cleanup-Resource-Fixture:
609
+ `tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-resource-missing.rmt`
610
+ beweist, dass ein Route-Lifecycle-Cycle ohne emittierten Resource-Record
611
+ ungueltig ist. `demo.feedback.audit` bleibt als Route-Target authoriert, aber
612
+ `demo.feedback.auditTimer` fehlt vollstaendig; die Matrix erzeugt
613
+ `rmt.vnext.source_to_sea.cleanup_resource_missing`, haelt `resource: null`
614
+ fest und zeigt zugleich, dass der `demo.feedback.detail`-Cycle weiterhin
615
+ `passed` ist.
616
+ - Positive Source-to-Sea-Fixture:
617
+ `tests/rmt-language/fixtures/vnext-source-to-sea.rmt`
618
+ - Browser-Smoke-Fixture:
619
+ `tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html`
620
+ - `RMT-VNEXT-PRIM-07` hat eine erste release-gated Tooling-Scheibe.
621
+ - Authoring-Tooling-Handoff:
622
+ [RMT vNext Primitive Authoring Tooling](./rmt-vnext-primitive-authoring-tooling.md)
623
+ - Tooling-API: `getRmtVNextToolingCompletions(...)`,
624
+ `getRmtVNextToolingHover(...)` und
625
+ `getRmtVNextToolingDocumentSymbols(...)` indexieren Primitive-Domains aus
626
+ PRIM-04 und praesentieren vNext als Default-Autorenpfad.
627
+ - Code-Action-Preview:
628
+ `getRmtVNextToolingCodeActions(...)` liefert fuer jede Primitive-Reparatur
629
+ eine `xtend.rmt.vnext.primitive-code-action-preview.v1` Preview sowie
630
+ `source.fixAll.rmt.vnext.primitives` fuer alle sicheren Textedits.
631
+ - Command-Handoff:
632
+ `workspace/executeCommand` fuer `xtend.rmt.vnext.extractKernelImport`
633
+ liefert `xtend.rmt.vnext.primitive-command-handoff.v1`, bleibt ohne
634
+ WorkspaceEdit und benennt den Host-Adapter-Pfad fuer manuelle
635
+ Kernel-/Fabric-Boundary-Reparaturen.
636
+ - Aktive VS-Code-Bridge:
637
+ `createActiveDocumentPrimitiveAuthoringExperience(...)` liest das aktive
638
+ `.rmt`-Dokument, nutzt den lokalen Language Server in-process und baut aus
639
+ echten LSP-CodeActions die
640
+ `xtend.rmt.editor.vscode-primitive-authoring-experience.v1`. Sichere
641
+ WorkspaceEdits laufen ueber `applyPrimitiveAuthoringWorkspaceEdit(...)`;
642
+ `xtendRmt.rmtVNext.applySafePrimitiveFixAll` wendet nur
643
+ `source.fixAll.rmt.vnext.primitives` an.
644
+ - `RMT-VNEXT-PRIM-08` ist abgeschlossen.
645
+ - Migration-Handoff:
646
+ [RMT vNext Primitive Migration](./rmt-vnext-primitive-migration.md)
647
+ - Migration-API:
648
+ `createAppPlatformPrimitiveMigrationPreview(...)` erzeugt den vNext-Draft
649
+ aus App-Platform-Primitive-JSON; `createAppPlatformPrimitiveMigrationApplyPlan(...)`
650
+ kapselt denselben Draft in
651
+ `xtend.rmt.vnext.primitive-migration-apply-plan.v1`, setzt
652
+ `automaticWrite: false`, liefert den Zielpfad-Hinweis und blockiert bei
653
+ Parse-/Compile-Fehlern.
654
+ - VS-Code-Bridge-Apply-Experience:
655
+ `createPrimitiveAuthoringApplyExperience(...)` erzeugt
656
+ `xtend.rmt.editor.vscode-primitive-authoring-experience.v1` und die Commands
657
+ `XTendRMT: Show vNext Primitive Apply Experience`,
658
+ `XTendRMT: Show vNext Primitive Code Action Preview` und
659
+ `XTendRMT: Show vNext Primitive Command Handoff` machen Quick-Fix, Fix-All
660
+ und Handoff im Output Channel unterscheidbar.
661
+ - Neues Snippet: `rmt-vnext-primitive-shell`
662
+ - Positive Fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
663
+ - Negative Fixture:
664
+ `tests/rmt-language/fixtures/vnext-primitives-semantic-invalid.rmt`
665
+ - `RMT-VNEXT-PRIM-08` hat eine erste release-gated Migration-Scheibe.
666
+ - Primitive-Migration-Handoff:
667
+ [RMT vNext Primitive Migration](./rmt-vnext-primitive-migration.md)
668
+ - Migrations-API:
669
+ `createAppPlatformPrimitiveMigrationPreview(...)` erkennt App-Platform-
670
+ Primitive-JSON, erzeugt einen kompilierbaren vNext-Draft und markiert Legacy
671
+ als `compiler-target`.
672
+ - Positive App-Platform-Fixture: `tests/fixtures/rmt-app-platform-tooling.rmt`
673
+ - Compatibility-Diagnosen:
674
+ `rmt.vnext.primitive_migration.preview_available` fuer report-only Mode und
675
+ `rmt.vnext.primitive_migration.legacy_backgrounded` fuer den Preview-Pfad.
676
+ - Der vNext-Parser erzeugt initiale Primitive-Nodes fuer die Design-Fixture:
677
+ `RmtStateDeclaration`, `RmtSelectorDeclaration`,
678
+ `RmtDataSourceDeclaration`, `RmtActionDeclaration`,
679
+ `RmtPortalDeclaration`, `RmtOverlayDeclaration`,
680
+ `RmtResourceDeclaration`, erweiterte `RmtSurfaceDeclaration` und
681
+ Event-Payload-Nodes.
682
+ - Release-Gates nachgezogen:
683
+ `.github/workflows/xtend-default-gates.yml`, `package.json`,
684
+ `scripts/run_xtend_tests.js`, `tools/rmt-language/vnext-release.js`,
685
+ `tests/references/reference_path_suite.js` und
686
+ [RMT vNext Release Handoff](./rmt-vnext-release-handoff.md).
687
+
688
+ ## Naechster Implementierungsschritt
689
+
690
+ `RMT-VNEXT-PRIM-06` ist abgeschlossen. `RMT-VNEXT-PRIM-05` ist als eigenes
691
+ Fabric-Bridge-Paket abgeschlossen: vNext-Source, Kernel-Schedule, Kernel-Fiber,
692
+ Fabric-Mapping, Fabric-Runtime-Fiber, Telemetry-Snapshot, Route-/Component-
693
+ Fiber und Browser-Marker sind ueber dieselbe Primitive ID korreliert. Der
694
+ Browser-Pfad kann lokal optional laufen, ist in CI ueber manuellen Dispatch
695
+ optional und deckt mehrere sichtbare UI-Objekte sowie negative
696
+ Runtime-Drifts ab.
697
+
698
+ Der naechste Patch sollte:
699
+
700
+ - Als Release-Handoff die naechste GitHub-Actions-Ausfuehrung gegen
701
+ `ciArtifactValidation.status: "passed"` abgleichen und das hochgeladene
702
+ Artefakt mit `npm run test:rmt-vnext-source-to-sea:validate-artifact` als
703
+ Release-Handoff-Beleg referenzieren.
704
+ - Die Implementierung wieder bei `RMT-VNEXT-PRIM-07` oder
705
+ `RMT-VNEXT-PRIM-08` aufnehmen.
706
+ - Fuer `RMT-VNEXT-PRIM-07` als naechsten DX-Schritt die VS-Code-Bridge von der
707
+ Output-Channel-Erfahrung zur produktiven aktiven-Dokument-Integration
708
+ ausbauen: echte LSP-CodeActions anfordern, Preview-Auswahl anbieten,
709
+ sichere WorkspaceEdits anwenden und Handoff-Follow-ups sichtbar fuehren.
710
+ Danach pruefen, ob PRIM-07 auf `completed` gesetzt werden kann.
711
+ - PRIM-05 nur noch erweitern, wenn neue Fabric-Lanes oder produktive Fiber-
712
+ Instrumentations hinzukommen; die aktuelle Lane/Fiber-Bridge ist gatebar.
713
+ - Danach mindestens `npm run test:rmt-vnext-primitives:report`,
714
+ `node scripts/run_xtend_tests.js references --json` und vor Release erneut
715
+ `npm run test:release:full:report` fahren. Source-to-Sea-Browser-Evidence
716
+ bleibt optional ueber `npm run test:rmt-vnext-source-to-sea:chromedriver`,
717
+ `npm run test:rmt-vnext-source-to-sea:validate-artifact` und
718
+ `node scripts/run_xtend_tests.js rmt-vnext-source-to-sea --json`.
719
+
720
+ ## Verwandte Dokumente
721
+
722
+ - [RMT vNext Authoring Guide](./rmt-vnext-authoring.md)
723
+ - [RMT vNext Primitive Grammar Design](./rmt-vnext-primitive-grammar-design.md)
724
+ - [RMT vNext Primitive Parser AST](./rmt-vnext-primitive-parser-ast.md)
725
+ - [RMT vNext Primitive Semantic Graph](./rmt-vnext-primitive-semantic-graph.md)
726
+ - [RMT vNext Primitive Lowering](./rmt-vnext-primitive-lowering.md)
727
+ - [RMT vNext Fabric Bridge Evidence](./rmt-vnext-fabric-bridge-evidence.md)
728
+ - [RMT vNext Source-to-Sea Gate](./rmt-vnext-source-to-sea-gate.md)
729
+ - [RMT vNext Primitive Authoring Tooling](./rmt-vnext-primitive-authoring-tooling.md)
730
+ - [RMT vNext Primitive Migration](./rmt-vnext-primitive-migration.md)
731
+ - [RMT vNext Release Handoff](./rmt-vnext-release-handoff.md)
732
+ - [RMT App Platform Tooling](./rmt-app-platform-tooling.md)
733
+ - [RMT App Platform Migration Guide](./rmt-app-platform-migration-guide.md)
734
+ - [RMT DOM Descriptor Renderer](./rmt-dom-descriptor-renderer.md)
735
+ - [RMT State Selector Runtime](./rmt-state-selector-runtime.md)
736
+ - [RMT Action Effect Runtime](./rmt-action-effect-runtime.md)
737
+ - [RMT Event Routing Runtime](./rmt-event-routing-runtime.md)
738
+ - [RMT Surface Resource Graph Runtime](./rmt-surface-resource-graph-runtime.md)
739
+ - [XTend-Fabric RMT Lane Mapping](./xtend-fabric-rmt-lane-mapping.md)