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