Files
WRNexusJS/CHANGES-0.6.0.md
T

407 lines
19 KiB
Markdown

## R9 — ToggleCount animation stability
- Schedules animation frames by absolute offsets to prevent cumulative timer drift.
- Cancels stale ToggleCount animation frames with per-animation tokens.
- Binds generated browser peer functions through a scoped function table.
# WRNexusJS v0.6.0 changed files
- Canonicalized v0.6 syntax helpers through `@wrnexus/syntax`; removed the public `@wrnexus/syntax/v060` subpath and editor-bundle alias.
## R3 correction
- Regenerated/aligned `editors/vscode/src/compiler.cjs`.
- Added `FIXES-0.6.0-VSCODE-COMPILER-BUNDLE.md`.
Comparison base: `WRNexusJS(4).zip`. Dependency directories, `.git`, and `.wrnexus` caches are excluded from this comparison.
- Added: **57** files
- Modified: **284** files
- Removed: **0** files
## Added files
- `MIGRATION-DRY-RUN-0.6.0.json`
- `MIGRATION-DRY-RUN-0.6.0.md`
- `OLD-PROJECT-TEST-CHECKLIST.md`
- `PUBLISHING-0.6.0.md`
- `RELEASE_MANIFEST.json`
- `RELEASE_NOTES-0.6.0.md`
- `ROLLBACK-0.6.0.md`
- `UPGRADE-0.6.0.md`
- `VALIDATION-0.6.0.md`
- `docs/v0.6/architecture.md`
- `docs/v0.6/language.md`
- `examples/component-showcase/app/pages/v06-functions.wrn`
- `examples/component-showcase/app/pages/v06-imports.wrn`
- `examples/component-showcase/app/pages/v06-migration.wrn`
- `examples/component-showcase/app/pages/v06-outputs.wrn`
- `examples/component-showcase/app/pages/v06-runtime.wrn`
- `examples/component-showcase/app/pages/v06-state.wrn`
- `examples/component-showcase/app/pages/v06-stores.wrn`
- `examples/component-showcase/app/pages/v06-types.wrn`
- `integration/fixtures/v0.5-legacy-app/app/components/LegacyModal.wrn`
- `integration/fixtures/v0.5-legacy-app/app/layouts/PublicLayout.wrn`
- `integration/fixtures/v0.5-legacy-app/app/pages/index.wrn`
- `integration/fixtures/v0.5-legacy-app/app/types/global.d.ts`
- `integration/fixtures/v0.5-legacy-app/package.json`
- `packages/cli/test/update-v060.test.ts`
- `packages/compiler/src/client-codegen.ts`
- `packages/compiler/src/component-contract.ts`
- `packages/compiler/src/import-resolver.ts`
- `packages/compiler/src/server-codegen.ts`
- `packages/compiler/src/source-map.ts`
- `packages/compiler/src/store-codegen.ts`
- `packages/compiler/src/targets.ts`
- `packages/compiler/src/type-codegen.ts`
- `packages/compiler/test/v060-targets.test.ts`
- `packages/csr/src/client-functions.ts`
- `packages/csr/src/outputs.ts`
- `packages/csr/src/refs.ts`
- `packages/csr/src/server-client.ts`
- `packages/csr/src/types.ts`
- `packages/ssr/src/rpc.ts`
- `packages/ssr/src/store-context.ts`
- `packages/ssr/test/rpc-v060.test.ts`
- `packages/store/package.json`
- `packages/store/src/client.ts`
- `packages/store/src/index.ts`
- `packages/store/src/server.ts`
- `packages/store/src/types.ts`
- `packages/store/test/store.test.ts`
- `packages/syntax/src/v060.ts`
- `packages/syntax/test/v060.test.ts`
- `packages/typecheck/package.json`
- `packages/typecheck/src/contracts.ts`
- `packages/typecheck/src/index.ts`
- `packages/typecheck/src/project.ts`
- `packages/typecheck/test/imports-and-components.test.ts`
- `packages/typecheck/test/typecheck.test.ts`
- `scripts/validate-0.6.mjs`
## Modified files
- `bun.lock`
- `editors/vscode/package.json`
- `editors/vscode/snippets/wrn.json`
- `editors/vscode/src/completion.js`
- `editors/vscode/src/diagnostics.js`
- `editors/vscode/syntaxes/wrn.tmLanguage.json`
- `examples/component-showcase/app/layouts/showcase.wrn`
- `examples/component-showcase/app/pages/components/accordion.wrn`
- `examples/component-showcase/app/pages/components/advanced-date-picker.wrn`
- `examples/component-showcase/app/pages/components/advanced-range-slider.wrn`
- `examples/component-showcase/app/pages/components/advanced-select.wrn`
- `examples/component-showcase/app/pages/components/alert.wrn`
- `examples/component-showcase/app/pages/components/announcement-bar.wrn`
- `examples/component-showcase/app/pages/components/auth-form.wrn`
- `examples/component-showcase/app/pages/components/auth-split-layout.wrn`
- `examples/component-showcase/app/pages/components/avatar-group.wrn`
- `examples/component-showcase/app/pages/components/avatar.wrn`
- `examples/component-showcase/app/pages/components/back-to-top.wrn`
- `examples/component-showcase/app/pages/components/badge.wrn`
- `examples/component-showcase/app/pages/components/blockquote.wrn`
- `examples/component-showcase/app/pages/components/breadcrumb.wrn`
- `examples/component-showcase/app/pages/components/button-group.wrn`
- `examples/component-showcase/app/pages/components/button.wrn`
- `examples/component-showcase/app/pages/components/card.wrn`
- `examples/component-showcase/app/pages/components/carousel.wrn`
- `examples/component-showcase/app/pages/components/chart.wrn`
- `examples/component-showcase/app/pages/components/chat-bubble.wrn`
- `examples/component-showcase/app/pages/components/checkbox.wrn`
- `examples/component-showcase/app/pages/components/clipboard.wrn`
- `examples/component-showcase/app/pages/components/collapse.wrn`
- `examples/component-showcase/app/pages/components/color-picker.wrn`
- `examples/component-showcase/app/pages/components/columns.wrn`
- `examples/component-showcase/app/pages/components/combo-box.wrn`
- `examples/component-showcase/app/pages/components/confetti.wrn`
- `examples/component-showcase/app/pages/components/container.wrn`
- `examples/component-showcase/app/pages/components/context-menu.wrn`
- `examples/component-showcase/app/pages/components/copy-markup.wrn`
- `examples/component-showcase/app/pages/components/ctasection.wrn`
- `examples/component-showcase/app/pages/components/custom-scrollbar.wrn`
- `examples/component-showcase/app/pages/components/data-map.wrn`
- `examples/component-showcase/app/pages/components/data-table.wrn`
- `examples/component-showcase/app/pages/components/date-picker.wrn`
- `examples/component-showcase/app/pages/components/device-frame.wrn`
- `examples/component-showcase/app/pages/components/divider.wrn`
- `examples/component-showcase/app/pages/components/drag-and-drop.wrn`
- `examples/component-showcase/app/pages/components/drawer.wrn`
- `examples/component-showcase/app/pages/components/dropdown.wrn`
- `examples/component-showcase/app/pages/components/feature-card.wrn`
- `examples/component-showcase/app/pages/components/feature-grid.wrn`
- `examples/component-showcase/app/pages/components/feature-icon-card.wrn`
- `examples/component-showcase/app/pages/components/file-input.wrn`
- `examples/component-showcase/app/pages/components/file-upload-progress.wrn`
- `examples/component-showcase/app/pages/components/file-upload.wrn`
- `examples/component-showcase/app/pages/components/footer.wrn`
- `examples/component-showcase/app/pages/components/grid.wrn`
- `examples/component-showcase/app/pages/components/hero-actions.wrn`
- `examples/component-showcase/app/pages/components/hero.wrn`
- `examples/component-showcase/app/pages/components/image.wrn`
- `examples/component-showcase/app/pages/components/input-group.wrn`
- `examples/component-showcase/app/pages/components/input-number.wrn`
- `examples/component-showcase/app/pages/components/input.wrn`
- `examples/component-showcase/app/pages/components/kbd.wrn`
- `examples/component-showcase/app/pages/components/layout-splitter.wrn`
- `examples/component-showcase/app/pages/components/legend-indicator.wrn`
- `examples/component-showcase/app/pages/components/link.wrn`
- `examples/component-showcase/app/pages/components/list-group.wrn`
- `examples/component-showcase/app/pages/components/list.wrn`
- `examples/component-showcase/app/pages/components/map.wrn`
- `examples/component-showcase/app/pages/components/marketing-section-header.wrn`
- `examples/component-showcase/app/pages/components/marquee.wrn`
- `examples/component-showcase/app/pages/components/mega-menu.wrn`
- `examples/component-showcase/app/pages/components/metric-card.wrn`
- `examples/component-showcase/app/pages/components/metric-grid.wrn`
- `examples/component-showcase/app/pages/components/modal.wrn`
- `examples/component-showcase/app/pages/components/nav.wrn`
- `examples/component-showcase/app/pages/components/navbar.wrn`
- `examples/component-showcase/app/pages/components/page-header.wrn`
- `examples/component-showcase/app/pages/components/pagination.wrn`
- `examples/component-showcase/app/pages/components/pin-input.wrn`
- `examples/component-showcase/app/pages/components/popover.wrn`
- `examples/component-showcase/app/pages/components/portal-dashboard.wrn`
- `examples/component-showcase/app/pages/components/preference-switcher.wrn`
- `examples/component-showcase/app/pages/components/progress.wrn`
- `examples/component-showcase/app/pages/components/public-page-shell.wrn`
- `examples/component-showcase/app/pages/components/radio.wrn`
- `examples/component-showcase/app/pages/components/range-slider.wrn`
- `examples/component-showcase/app/pages/components/rating.wrn`
- `examples/component-showcase/app/pages/components/scrollspy.wrn`
- `examples/component-showcase/app/pages/components/search-box.wrn`
- `examples/component-showcase/app/pages/components/section-header.wrn`
- `examples/component-showcase/app/pages/components/section.wrn`
- `examples/component-showcase/app/pages/components/select.wrn`
- `examples/component-showcase/app/pages/components/sidebar.wrn`
- `examples/component-showcase/app/pages/components/skeleton.wrn`
- `examples/component-showcase/app/pages/components/spinner.wrn`
- `examples/component-showcase/app/pages/components/split-hero.wrn`
- `examples/component-showcase/app/pages/components/stats-bar.wrn`
- `examples/component-showcase/app/pages/components/stepper.wrn`
- `examples/component-showcase/app/pages/components/strong-password.wrn`
- `examples/component-showcase/app/pages/components/styled-icon.wrn`
- `examples/component-showcase/app/pages/components/switch.wrn`
- `examples/component-showcase/app/pages/components/table.wrn`
- `examples/component-showcase/app/pages/components/tabs.wrn`
- `examples/component-showcase/app/pages/components/text-link.wrn`
- `examples/component-showcase/app/pages/components/textarea.wrn`
- `examples/component-showcase/app/pages/components/time-picker.wrn`
- `examples/component-showcase/app/pages/components/timeline.wrn`
- `examples/component-showcase/app/pages/components/toast-notifications.wrn`
- `examples/component-showcase/app/pages/components/toast.wrn`
- `examples/component-showcase/app/pages/components/toggle-count.wrn`
- `examples/component-showcase/app/pages/components/toggle-password.wrn`
- `examples/component-showcase/app/pages/components/tooltip.wrn`
- `examples/component-showcase/app/pages/components/tree-view.wrn`
- `examples/component-showcase/app/pages/components/typography.wrn`
- `examples/component-showcase/app/pages/components/wysiwyg-editor.wrn`
- `examples/component-showcase/public/playground.js`
- `examples/component-showcase/scripts/generate-showcase.mjs`
- `llms.txt`
- `package.json`
- `packages/ai/package.json`
- `packages/auth/package.json`
- `packages/authz/package.json`
- `packages/captcha/package.json`
- `packages/cli/package.json`
- `packages/cli/src/update.ts`
- `packages/compiler/package.json`
- `packages/compiler/src/codegen.ts`
- `packages/compiler/src/index.ts`
- `packages/core/package.json`
- `packages/csr/package.json`
- `packages/csr/src/index.ts`
- `packages/csr/src/nav-runtime.ts`
- `packages/csr/src/reactive-runtime.ts`
- `packages/db/package.json`
- `packages/dev-server/package.json`
- `packages/dev-server/src/assets.ts`
- `packages/dev-server/src/index.ts`
- `packages/dev-server/src/pipeline.ts`
- `packages/dev-server/src/runtime.ts`
- `packages/dev-toolbar/package.json`
- `packages/dev-toolbar/src/client/runtime.ts`
- `packages/dev-toolbar/src/client/styles.ts`
- `packages/dev-toolbar/src/types.ts`
- `packages/encryption/package.json`
- `packages/helpers/package.json`
- `packages/i18n/package.json`
- `packages/jwt/package.json`
- `packages/mobile/package.json`
- `packages/native/package.json`
- `packages/oauth/package.json`
- `packages/plugin/package.json`
- `packages/pubsub/package.json`
- `packages/queue/package.json`
- `packages/reactive/package.json`
- `packages/router/package.json`
- `packages/ssr/package.json`
- `packages/ssr/src/index.ts`
- `packages/styles/package.json`
- `packages/styles/src/config.ts`
- `packages/syntax/package.json`
- `packages/syntax/src/diagnostics.ts`
- `packages/syntax/src/index.ts`
- `packages/syntax/src/parser.ts`
- `packages/syntax/src/spec.ts`
- `packages/syntax/src/tokenizer.ts`
- `packages/test/package.json`
- `packages/tracking/package.json`
- `packages/ui/COMPONENTS.md`
- `packages/ui/component-reference.json`
- `packages/ui/components/Accordion.wrn`
- `packages/ui/components/AdvancedDatePicker.wrn`
- `packages/ui/components/AdvancedRangeSlider.wrn`
- `packages/ui/components/AdvancedSelect.wrn`
- `packages/ui/components/AnnouncementBar.wrn`
- `packages/ui/components/AuthForm.wrn`
- `packages/ui/components/AuthSplitLayout.wrn`
- `packages/ui/components/AvatarGroup.wrn`
- `packages/ui/components/BackToTop.wrn`
- `packages/ui/components/Badge.wrn`
- `packages/ui/components/Blockquote.wrn`
- `packages/ui/components/Breadcrumb.wrn`
- `packages/ui/components/ButtonGroup.wrn`
- `packages/ui/components/CTASection.wrn`
- `packages/ui/components/Card.wrn`
- `packages/ui/components/Chart.wrn`
- `packages/ui/components/ChatBubble.wrn`
- `packages/ui/components/Checkbox.wrn`
- `packages/ui/components/Clipboard.wrn`
- `packages/ui/components/Collapse.wrn`
- `packages/ui/components/ColorPicker.wrn`
- `packages/ui/components/Columns.wrn`
- `packages/ui/components/Combobox.wrn`
- `packages/ui/components/Confetti.wrn`
- `packages/ui/components/Container.wrn`
- `packages/ui/components/ContextMenu.wrn`
- `packages/ui/components/CopyMarkup.wrn`
- `packages/ui/components/CustomScrollbar.wrn`
- `packages/ui/components/DataMap.wrn`
- `packages/ui/components/DataTable.wrn`
- `packages/ui/components/DatePicker.wrn`
- `packages/ui/components/DeviceFrame.wrn`
- `packages/ui/components/Divider.wrn`
- `packages/ui/components/DragAndDrop.wrn`
- `packages/ui/components/Drawer.wrn`
- `packages/ui/components/Dropdown.wrn`
- `packages/ui/components/FeatureCard.wrn`
- `packages/ui/components/FeatureGrid.wrn`
- `packages/ui/components/FeatureIconCard.wrn`
- `packages/ui/components/FileInput.wrn`
- `packages/ui/components/FileUpload.wrn`
- `packages/ui/components/FileUploadProgress.wrn`
- `packages/ui/components/Footer.wrn`
- `packages/ui/components/Grid.wrn`
- `packages/ui/components/Hero.wrn`
- `packages/ui/components/HeroActions.wrn`
- `packages/ui/components/Image.wrn`
- `packages/ui/components/Input.wrn`
- `packages/ui/components/InputGroup.wrn`
- `packages/ui/components/InputNumber.wrn`
- `packages/ui/components/Kbd.wrn`
- `packages/ui/components/LayoutSplitter.wrn`
- `packages/ui/components/LegendIndicator.wrn`
- `packages/ui/components/Link.wrn`
- `packages/ui/components/List.wrn`
- `packages/ui/components/ListGroup.wrn`
- `packages/ui/components/Map.wrn`
- `packages/ui/components/MarketingSectionHeader.wrn`
- `packages/ui/components/Marquee.wrn`
- `packages/ui/components/MegaMenu.wrn`
- `packages/ui/components/MetricCard.wrn`
- `packages/ui/components/MetricGrid.wrn`
- `packages/ui/components/Modal.wrn`
- `packages/ui/components/Nav.wrn`
- `packages/ui/components/Navbar.wrn`
- `packages/ui/components/PageHeader.wrn`
- `packages/ui/components/Pagination.wrn`
- `packages/ui/components/PinInput.wrn`
- `packages/ui/components/Popover.wrn`
- `packages/ui/components/PortalDashboard.wrn`
- `packages/ui/components/PreferenceSwitcher.wrn`
- `packages/ui/components/PublicPageShell.wrn`
- `packages/ui/components/Radio.wrn`
- `packages/ui/components/RangeSlider.wrn`
- `packages/ui/components/Rating.wrn`
- `packages/ui/components/Scrollspy.wrn`
- `packages/ui/components/SearchBox.wrn`
- `packages/ui/components/Section.wrn`
- `packages/ui/components/SectionHeader.wrn`
- `packages/ui/components/Select.wrn`
- `packages/ui/components/Sidebar.wrn`
- `packages/ui/components/SplitHero.wrn`
- `packages/ui/components/StatsBar.wrn`
- `packages/ui/components/Stepper.wrn`
- `packages/ui/components/StrongPassword.wrn`
- `packages/ui/components/StyledIcon.wrn`
- `packages/ui/components/Switch.wrn`
- `packages/ui/components/Tabs.wrn`
- `packages/ui/components/TextLink.wrn`
- `packages/ui/components/Textarea.wrn`
- `packages/ui/components/TimePicker.wrn`
- `packages/ui/components/Timeline.wrn`
- `packages/ui/components/Toast.wrn`
- `packages/ui/components/ToastNotifications.wrn`
- `packages/ui/components/ToggleCount.wrn`
- `packages/ui/components/TogglePassword.wrn`
- `packages/ui/components/Tooltip.wrn`
- `packages/ui/components/TreeView.wrn`
- `packages/ui/components/Typography.wrn`
- `packages/ui/components/WysiwygEditor.wrn`
- `packages/ui/components/alert.wrn`
- `packages/ui/components/avatar.wrn`
- `packages/ui/components/button.wrn`
- `packages/ui/components/carousel.wrn`
- `packages/ui/components/progress.wrn`
- `packages/ui/components/skeleton.wrn`
- `packages/ui/components/spinner.wrn`
- `packages/ui/components/table.wrn`
- `packages/ui/package.json`
- `packages/uploader/package.json`
- `packages/validation/package.json`
- `scripts/generate-ui-component-reference.mjs`
- `services/managed-captcha/package.json`
- `tsconfig.json`
- `update-package-versions.mjs`
## Removed files
- None
## R7 test-cascade corrections
- Restored synchronous CSR hydration for inline behavior and unresolved direct-compile module placeholders.
- Restored strict component/store lifecycle hook validation.
- Prevented browser runtime API names from colliding with generated prop/state aliases.
- Preserved synchronous page exports when no imported store requires asynchronous initialization.
- Allowed store dispose lifecycle hooks to mutate store state through the internal mutation context.
- Updated UI tests and generated references for typed props and `outputs {}` contracts.
- Added universal size/color support to FeatureGrid and complete RangeSlider output metadata.
## R8 UI compiler regression fixes
- Fixed readonly-prop false positives for comparisons, string literals, object/member access, and shadowing function parameters.
- Restored compilation and runtime tests for AuthForm, Carousel, RangeSlider, InputNumber, Select, AdvancedSelect, ComboBox, ContextMenu, and Tooltip.
- Synchronized component catalog and generated component reference with all 108 bundled UI declarations.
- Added full UI compilation and native-attribute forwarding checks to `validate:0.6`.
## R10 peer-function scoped-state correction
- Peer client/shared functions are invoked through synchronized scoped wrappers.
- Nested peer calls no longer have their state changes overwritten by stale outer aliases.
- Synchronous, asynchronous, and throwing peer calls refresh shared state correctly.
- Added an executable `validate:0.6` regression probe for the exact compiler failure.
## R11 peer-function test correction
- Corrected the compiler regression test export-stripping regex from an over-escaped literal `\\s` match to the intended whitespace `\s` match.
- Confirmed the generated peer-function browser module executes and updates shared state from `0` to `1`.
- Added a release validator guard for the exact test source regression.
## R13 release reference stability
- Prevented the UI reference generator from rewriting current files solely because of CRLF/LF differences.
- Added an executable regression test proving line-ending-only differences are ignored and real stale content is repaired.