@adia-ai/gen-ui 0.8.37
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 +26 -0
- package/README.md +77 -0
- package/compose/CHANGELOG.md +1707 -0
- package/compose/README.md +215 -0
- package/compose/core/artifacts.js +262 -0
- package/compose/core/context-store.js +218 -0
- package/compose/core/generator.d.ts +4 -0
- package/compose/core/generator.js +602 -0
- package/compose/core/pipeline/engine.js +289 -0
- package/compose/core/pipeline/types.js +91 -0
- package/compose/core/plan-primitives.js +120 -0
- package/compose/core/plan-turn.js +145 -0
- package/compose/core/reference.js +150 -0
- package/compose/core/state.js +15 -0
- package/compose/evals/harness.d.ts +4 -0
- package/compose/evals/harness.mjs +193 -0
- package/compose/index.d.ts +4 -0
- package/compose/index.js +16 -0
- package/compose/shared/validate-and-repair.js +122 -0
- package/compose/strategies/_shared/chunk-loader.js +282 -0
- package/compose/strategies/cascade.d.ts +67 -0
- package/compose/strategies/cascade.js +165 -0
- package/compose/strategies/escalation.d.ts +13 -0
- package/compose/strategies/escalation.js +132 -0
- package/compose/strategies/free-form-composer/index.js +254 -0
- package/compose/strategies/free-form-composer/system-prompt.js +205 -0
- package/compose/strategies/free-form-composer/transpile.js +279 -0
- package/compose/strategies/monolithic/_shared.js +1619 -0
- package/compose/strategies/monolithic/generate-instant.js +228 -0
- package/compose/strategies/monolithic/generate-pro.js +490 -0
- package/compose/strategies/monolithic/generate-thinking.js +206 -0
- package/compose/strategies/registry.d.ts +20 -0
- package/compose/strategies/registry.js +495 -0
- package/compose/strategies/zettel/_smoke.js +27 -0
- package/compose/strategies/zettel/chunk-composer.js +214 -0
- package/compose/strategies/zettel/chunk-refiner.js +582 -0
- package/compose/strategies/zettel/chunk-synthesizer.js +458 -0
- package/compose/strategies/zettel/composer.js +78 -0
- package/compose/strategies/zettel/composition-library.js +418 -0
- package/compose/strategies/zettel/generate.js +15 -0
- package/compose/strategies/zettel/generator-adapter.d.ts +4 -0
- package/compose/strategies/zettel/generator-adapter.js +242 -0
- package/compose/strategies/zettel/issue-reporter.js +607 -0
- package/compose/strategies/zettel/session-store.js +121 -0
- package/compose/strategies/zettel/state-cache.js +158 -0
- package/compose/transpiler/transpiler-maps.js +675 -0
- package/compose/transpiler/transpiler.d.ts +4 -0
- package/compose/transpiler/transpiler.js +962 -0
- package/corpus/CHANGELOG.md +1957 -0
- package/corpus/README.md +279 -0
- package/corpus/catalog-a2ui_0_9.d.ts +4 -0
- package/corpus/catalog-a2ui_0_9.json +29571 -0
- package/corpus/catalog-a2ui_0_9_rules.txt +1215 -0
- package/corpus/chunk-embeddings.d.ts +4 -0
- package/corpus/chunk-embeddings.json +1 -0
- package/corpus/chunks/_index.json +16658 -0
- package/corpus/chunks/_source-hashes.json +571 -0
- package/corpus/chunks/access-denied-with-request.json +124 -0
- package/corpus/chunks/access-request-form.json +166 -0
- package/corpus/chunks/access-request-pending.json +133 -0
- package/corpus/chunks/accordion-settings.json +176 -0
- package/corpus/chunks/achievement-badges.json +413 -0
- package/corpus/chunks/achievement-unlock.json +104 -0
- package/corpus/chunks/action-list-record-actions.json +84 -0
- package/corpus/chunks/activity-feed.json +390 -0
- package/corpus/chunks/admin-page-header-flush.json +83 -0
- package/corpus/chunks/admin-page-header-title-description.json +80 -0
- package/corpus/chunks/admin-page-header-with-actions.json +107 -0
- package/corpus/chunks/admin-page-header-with-tabs.json +144 -0
- package/corpus/chunks/admin-shell-rounded-borderless.json +287 -0
- package/corpus/chunks/admin-shell-standard.json +310 -0
- package/corpus/chunks/admin-sidebar-brand-signin.json +158 -0
- package/corpus/chunks/admin-sidebar-brand-version.json +130 -0
- package/corpus/chunks/admin-sidebar-flat-nav.json +131 -0
- package/corpus/chunks/admin-sidebar-nav-dividers.json +150 -0
- package/corpus/chunks/admin-sidebar-nav-groups.json +171 -0
- package/corpus/chunks/admin-sidebar-workspace-switcher.json +139 -0
- package/corpus/chunks/admin-topbar-breadcrumb-actions.json +130 -0
- package/corpus/chunks/admin-topbar-breadcrumb-minimal.json +79 -0
- package/corpus/chunks/admin-topbar-deep-breadcrumb.json +129 -0
- package/corpus/chunks/admin-topbar-search.json +104 -0
- package/corpus/chunks/admin-topbar-status-indicator.json +122 -0
- package/corpus/chunks/admin-topbar-trailing-toggle.json +114 -0
- package/corpus/chunks/agent-activity-feed.json +163 -0
- package/corpus/chunks/agent-artifact-stub-card.json +115 -0
- package/corpus/chunks/agent-canvas-shell.json +305 -0
- package/corpus/chunks/agent-citations-source-chips.json +82 -0
- package/corpus/chunks/agent-command-palette-search.json +120 -0
- package/corpus/chunks/agent-cost-detailed.json +260 -0
- package/corpus/chunks/agent-cost-inline.json +78 -0
- package/corpus/chunks/agent-memory-detail.json +181 -0
- package/corpus/chunks/agent-memory-editor.json +173 -0
- package/corpus/chunks/agent-memory-list.json +207 -0
- package/corpus/chunks/agent-pipeline-status-stages.json +61 -0
- package/corpus/chunks/agent-prompt-card.json +179 -0
- package/corpus/chunks/agent-prompt-library-grid.json +341 -0
- package/corpus/chunks/agent-prompt-picker.json +282 -0
- package/corpus/chunks/agent-rate-limit.json +100 -0
- package/corpus/chunks/agent-reasoning-collapsed.json +128 -0
- package/corpus/chunks/agent-tool-call-accordion.json +109 -0
- package/corpus/chunks/agent-tool-call-collapsed.json +98 -0
- package/corpus/chunks/agent-tool-call-error.json +112 -0
- package/corpus/chunks/agent-tool-call-result.json +145 -0
- package/corpus/chunks/agent-tool-call-running.json +85 -0
- package/corpus/chunks/agent-tool-call-success.json +137 -0
- package/corpus/chunks/agent-trace-timeline.json +244 -0
- package/corpus/chunks/ai-streaming-response.json +147 -0
- package/corpus/chunks/alert-banner-stack.json +78 -0
- package/corpus/chunks/alert-banner.json +55 -0
- package/corpus/chunks/alert-dialog-simple.json +72 -0
- package/corpus/chunks/alert-dialog-typed.json +107 -0
- package/corpus/chunks/alert-dialog-unsaved.json +81 -0
- package/corpus/chunks/analytics-chart.json +213 -0
- package/corpus/chunks/analytics-sparklines-dashboard.json +259 -0
- package/corpus/chunks/anchor-bar-selection-bar.json +226 -0
- package/corpus/chunks/api-key-table.json +148 -0
- package/corpus/chunks/api-keys-create.json +140 -0
- package/corpus/chunks/api-keys-list.json +271 -0
- package/corpus/chunks/app-nav-badges-counts.json +77 -0
- package/corpus/chunks/app-nav-badges-group-rollup-badges.json +100 -0
- package/corpus/chunks/app-nav-badges-plan-tiers.json +76 -0
- package/corpus/chunks/app-nav-badges-status-callouts.json +75 -0
- package/corpus/chunks/app-nav-full-example.json +195 -0
- package/corpus/chunks/app-nav-groups.json +103 -0
- package/corpus/chunks/app-nav-items.json +74 -0
- package/corpus/chunks/app-nav-labels-and-dividers.json +92 -0
- package/corpus/chunks/app-nav-spacer.json +77 -0
- package/corpus/chunks/app-product-listing-card.json +214 -0
- package/corpus/chunks/approvals-detail.json +240 -0
- package/corpus/chunks/approvals-queue.json +321 -0
- package/corpus/chunks/audit-log-basic.json +184 -0
- package/corpus/chunks/audit-log.json +174 -0
- package/corpus/chunks/auth-account-deleted-actions.json +51 -0
- package/corpus/chunks/auth-account-deleted.json +202 -0
- package/corpus/chunks/auth-card-content.json +260 -0
- package/corpus/chunks/auth-card-header.json +205 -0
- package/corpus/chunks/auth-email-entry.json +65 -0
- package/corpus/chunks/auth-email-verify-confirm.json +52 -0
- package/corpus/chunks/auth-email-verify.json +196 -0
- package/corpus/chunks/auth-forbidden-actions.json +59 -0
- package/corpus/chunks/auth-forbidden.json +203 -0
- package/corpus/chunks/auth-invite-actions.json +49 -0
- package/corpus/chunks/auth-invite-team-card.json +86 -0
- package/corpus/chunks/auth-link-expired-form.json +65 -0
- package/corpus/chunks/auth-link-expired.json +196 -0
- package/corpus/chunks/auth-locked-account.json +211 -0
- package/corpus/chunks/auth-locked-recovery-options.json +60 -0
- package/corpus/chunks/auth-mfa-enrollment-submit.json +54 -0
- package/corpus/chunks/auth-mfa-enrollment.json +284 -0
- package/corpus/chunks/auth-mfa-fallback-actions.json +52 -0
- package/corpus/chunks/auth-mfa-recovery.json +61 -0
- package/corpus/chunks/auth-new-password-form.json +75 -0
- package/corpus/chunks/auth-new-password.json +217 -0
- package/corpus/chunks/auth-oauth-fallback-actions.json +52 -0
- package/corpus/chunks/auth-oauth-interstitial.json +160 -0
- package/corpus/chunks/auth-password-challenge.json +94 -0
- package/corpus/chunks/auth-password-reset-form.json +64 -0
- package/corpus/chunks/auth-password-reset.json +195 -0
- package/corpus/chunks/auth-profile-form.json +72 -0
- package/corpus/chunks/auth-profile-setup.json +194 -0
- package/corpus/chunks/auth-reset-sent.json +188 -0
- package/corpus/chunks/auth-session-expired-actions.json +52 -0
- package/corpus/chunks/auth-session-expired.json +201 -0
- package/corpus/chunks/auth-signin-card-email.json +245 -0
- package/corpus/chunks/auth-signin-card-magic-link.json +147 -0
- package/corpus/chunks/auth-signin-card-mfa.json +231 -0
- package/corpus/chunks/auth-signin-card-otp.json +205 -0
- package/corpus/chunks/auth-signin-card-password.json +264 -0
- package/corpus/chunks/auth-signin-card-recovery.json +218 -0
- package/corpus/chunks/auth-signout-actions.json +51 -0
- package/corpus/chunks/auth-signout.json +184 -0
- package/corpus/chunks/auth-signup-email-entry.json +66 -0
- package/corpus/chunks/auth-signup-entry.json +281 -0
- package/corpus/chunks/auth-signup-social-auths.json +54 -0
- package/corpus/chunks/auth-signup-verify.json +227 -0
- package/corpus/chunks/auth-social-auths.json +62 -0
- package/corpus/chunks/auth-sso-providers.json +55 -0
- package/corpus/chunks/auth-sso-required.json +213 -0
- package/corpus/chunks/auth-team-invite.json +288 -0
- package/corpus/chunks/avatar-group-overflow.json +137 -0
- package/corpus/chunks/avatar-stack-overflow.json +124 -0
- package/corpus/chunks/banner-announcement-beta.json +99 -0
- package/corpus/chunks/banner-announcement-promo.json +102 -0
- package/corpus/chunks/banner-live-update.json +102 -0
- package/corpus/chunks/banner-system-maintenance.json +101 -0
- package/corpus/chunks/banner-system-offline.json +85 -0
- package/corpus/chunks/banner-system-update.json +102 -0
- package/corpus/chunks/bell-menu-empty.json +107 -0
- package/corpus/chunks/bell-menu-unread.json +395 -0
- package/corpus/chunks/billing-cancel-subscription-danger.json +61 -0
- package/corpus/chunks/billing-invoice-history-table.json +75 -0
- package/corpus/chunks/billing-overview.json +202 -0
- package/corpus/chunks/billing-payment-method-card-on-file.json +157 -0
- package/corpus/chunks/billing-progress-label.json +101 -0
- package/corpus/chunks/blog-post-card.json +212 -0
- package/corpus/chunks/breadcrumb-navigation.json +72 -0
- package/corpus/chunks/bulk-action-toolbar-floating.json +199 -0
- package/corpus/chunks/bulk-action-toolbar-swap.json +158 -0
- package/corpus/chunks/bulk-selection-actions-bar.json +162 -0
- package/corpus/chunks/business-address-form.json +953 -0
- package/corpus/chunks/calendar-month-view.json +74 -0
- package/corpus/chunks/card-grid-images.json +459 -0
- package/corpus/chunks/card-header-with-description.json +47 -0
- package/corpus/chunks/card-with-empty-state.json +96 -0
- package/corpus/chunks/card-with-form.json +143 -0
- package/corpus/chunks/card-with-sparkline.json +90 -0
- package/corpus/chunks/card-with-stat-kpi.json +86 -0
- package/corpus/chunks/changelog-feed-basic.json +470 -0
- package/corpus/chunks/chart-in-card-chart-plus-breakdown.json +188 -0
- package/corpus/chunks/chart-in-card-chart-plus-stat.json +89 -0
- package/corpus/chunks/chart-in-card-chart-with-filter-pills.json +124 -0
- package/corpus/chunks/chart-in-card-full-bleed-legend.json +116 -0
- package/corpus/chunks/chart-in-card-full-chart.json +107 -0
- package/corpus/chunks/chart-in-card-sparkline-tile.json +93 -0
- package/corpus/chunks/chart-in-card-stat-with-sparkline.json +73 -0
- package/corpus/chunks/chart-in-card-trend-footer.json +115 -0
- package/corpus/chunks/chart-with-filter-pills.json +169 -0
- package/corpus/chunks/chat-empty-state-hero.json +102 -0
- package/corpus/chunks/chat-message-assistant-byline.json +85 -0
- package/corpus/chunks/chat-message-user-byline.json +84 -0
- package/corpus/chunks/chat-page-shell.json +379 -0
- package/corpus/chunks/chat-streaming-surface.json +169 -0
- package/corpus/chunks/checkout-order-summary-card.json +140 -0
- package/corpus/chunks/code-snippet.json +107 -0
- package/corpus/chunks/col-form-stack.json +93 -0
- package/corpus/chunks/col-heading-body-action.json +79 -0
- package/corpus/chunks/col-stat-label.json +63 -0
- package/corpus/chunks/color-picker-swatches.json +153 -0
- package/corpus/chunks/command-palette.json +327 -0
- package/corpus/chunks/comments-composer.json +158 -0
- package/corpus/chunks/comments-mention-menu.json +237 -0
- package/corpus/chunks/comments-thread.json +344 -0
- package/corpus/chunks/commerce-pricing-tiers.json +401 -0
- package/corpus/chunks/comparison-table.json +246 -0
- package/corpus/chunks/contact-form-card.json +197 -0
- package/corpus/chunks/contact-form.json +157 -0
- package/corpus/chunks/contact-support-form.json +702 -0
- package/corpus/chunks/conversion-funnel-4-step-funnel.json +139 -0
- package/corpus/chunks/conversion-funnel-6step.json +151 -0
- package/corpus/chunks/conversion-funnel-wide-summary.json +192 -0
- package/corpus/chunks/conversion-funnel-with-segment-compare.json +202 -0
- package/corpus/chunks/cta-banner-centered.json +102 -0
- package/corpus/chunks/dashboard-acquisition-panel.json +212 -0
- package/corpus/chunks/dashboard-admin-page.json +104 -0
- package/corpus/chunks/dashboard-audience-kpis.json +165 -0
- package/corpus/chunks/dashboard-audience-panel.json +756 -0
- package/corpus/chunks/dashboard-behavior-panel.json +114 -0
- package/corpus/chunks/dashboard-chart-recent.json +566 -0
- package/corpus/chunks/dashboard-cohort-retention.json +83 -0
- package/corpus/chunks/dashboard-conversion-panel.json +234 -0
- package/corpus/chunks/dashboard-country-list.json +304 -0
- package/corpus/chunks/dashboard-filter-bar.json +118 -0
- package/corpus/chunks/dashboard-funnel.json +142 -0
- package/corpus/chunks/dashboard-notifications-panel.json +423 -0
- package/corpus/chunks/dashboard-overview-panel.json +1644 -0
- package/corpus/chunks/dashboard-page-header.json +166 -0
- package/corpus/chunks/dashboard-pages-table.json +86 -0
- package/corpus/chunks/dashboard-quick-actions.json +116 -0
- package/corpus/chunks/dashboard-reports-panel.json +166 -0
- package/corpus/chunks/dashboard-reports-table.json +138 -0
- package/corpus/chunks/dashboard-storage-card.json +117 -0
- package/corpus/chunks/dashboard-tabs.json +86 -0
- package/corpus/chunks/dashboard-team-actions-storage.json +605 -0
- package/corpus/chunks/dashboard-team-list.json +334 -0
- package/corpus/chunks/dashboard-traffic-channels.json +184 -0
- package/corpus/chunks/dashboard-transactions-table.json +145 -0
- package/corpus/chunks/data-export-history.json +192 -0
- package/corpus/chunks/data-export-request.json +197 -0
- package/corpus/chunks/data-import-wizard.json +391 -0
- package/corpus/chunks/date-range-picker.json +156 -0
- package/corpus/chunks/date-time-picker-form.json +222 -0
- package/corpus/chunks/departments-checkbox-form.json +390 -0
- package/corpus/chunks/destructive-confirm-modal.json +149 -0
- package/corpus/chunks/diff-inline.json +84 -0
- package/corpus/chunks/diff-side-by-side.json +131 -0
- package/corpus/chunks/diff-structured.json +216 -0
- package/corpus/chunks/digest-email-preview.json +374 -0
- package/corpus/chunks/divider-text-label.json +87 -0
- package/corpus/chunks/doc-editor-shell.json +356 -0
- package/corpus/chunks/drawer-2fa-key.json +273 -0
- package/corpus/chunks/drawer-2fa-sms.json +261 -0
- package/corpus/chunks/drawer-2fa-totp.json +385 -0
- package/corpus/chunks/drawer-cancel-sub.json +636 -0
- package/corpus/chunks/drawer-change-plan.json +561 -0
- package/corpus/chunks/drawer-custom-roles.json +696 -0
- package/corpus/chunks/drawer-data-start.json +171 -0
- package/corpus/chunks/drawer-delete-account.json +341 -0
- package/corpus/chunks/drawer-delete-workspace.json +362 -0
- package/corpus/chunks/drawer-discord.json +434 -0
- package/corpus/chunks/drawer-figma.json +401 -0
- package/corpus/chunks/drawer-first-dashboard.json +220 -0
- package/corpus/chunks/drawer-gcal.json +475 -0
- package/corpus/chunks/drawer-github.json +589 -0
- package/corpus/chunks/drawer-invite.json +397 -0
- package/corpus/chunks/drawer-record-detail.json +44 -0
- package/corpus/chunks/drawer-report.json +528 -0
- package/corpus/chunks/drawer-revoke-session.json +331 -0
- package/corpus/chunks/drawer-role.json +190 -0
- package/corpus/chunks/drawer-slack.json +429 -0
- package/corpus/chunks/drawer-smtp.json +476 -0
- package/corpus/chunks/drawer-source.json +294 -0
- package/corpus/chunks/drawer-transaction.json +493 -0
- package/corpus/chunks/drawer-with-create-form.json +43 -0
- package/corpus/chunks/editor-code-pane.json +204 -0
- package/corpus/chunks/editor-page-shell.json +149 -0
- package/corpus/chunks/editor-preview-pane.json +136 -0
- package/corpus/chunks/editor-statusbar-ready.json +99 -0
- package/corpus/chunks/editor-toolbar-import-export.json +195 -0
- package/corpus/chunks/email-inbox-list.json +678 -0
- package/corpus/chunks/empty-state-danger.json +58 -0
- package/corpus/chunks/empty-state-minimal.json +44 -0
- package/corpus/chunks/empty-state-warning.json +53 -0
- package/corpus/chunks/empty-state.json +65 -0
- package/corpus/chunks/error-404-actions.json +54 -0
- package/corpus/chunks/error-404.json +204 -0
- package/corpus/chunks/error-500-actions.json +61 -0
- package/corpus/chunks/error-500.json +220 -0
- package/corpus/chunks/error-maintenance-actions.json +53 -0
- package/corpus/chunks/error-maintenance.json +203 -0
- package/corpus/chunks/error-page-shell.json +132 -0
- package/corpus/chunks/export-flow-async.json +210 -0
- package/corpus/chunks/export-flow-delivery.json +163 -0
- package/corpus/chunks/export-flow-sync.json +162 -0
- package/corpus/chunks/extended-profile-form.json +512 -0
- package/corpus/chunks/faq-accordion.json +123 -0
- package/corpus/chunks/feature-grid-icons.json +314 -0
- package/corpus/chunks/feature-grid-three-cards.json +187 -0
- package/corpus/chunks/feature-toggle-switch-grid.json +213 -0
- package/corpus/chunks/file-upload-dnd.json +166 -0
- package/corpus/chunks/file-upload-field.json +97 -0
- package/corpus/chunks/file-upload-form.json +251 -0
- package/corpus/chunks/filter-bar-active-filters.json +176 -0
- package/corpus/chunks/filter-bar-filter-bar-with-table.json +113 -0
- package/corpus/chunks/filter-bar-saved-views.json +117 -0
- package/corpus/chunks/filter-popover-form.json +137 -0
- package/corpus/chunks/footer-multi-column.json +270 -0
- package/corpus/chunks/footer-primary-only.json +41 -0
- package/corpus/chunks/form-checkbox-group.json +65 -0
- package/corpus/chunks/form-drawer-edit-form.json +178 -0
- package/corpus/chunks/form-drawer-simple-form.json +151 -0
- package/corpus/chunks/form-drawer-tall-form.json +325 -0
- package/corpus/chunks/form-field-email-hint.json +53 -0
- package/corpus/chunks/form-field-range.json +54 -0
- package/corpus/chunks/form-field-required.json +52 -0
- package/corpus/chunks/form-field-select.json +66 -0
- package/corpus/chunks/form-field-textarea.json +51 -0
- package/corpus/chunks/form-field-with-error.json +151 -0
- package/corpus/chunks/form-fields-two-column.json +69 -0
- package/corpus/chunks/form-page-shell.json +146 -0
- package/corpus/chunks/form-switch-toggle.json +41 -0
- package/corpus/chunks/form-system-live-demo.json +123 -0
- package/corpus/chunks/forms-address-autocomplete.json +277 -0
- package/corpus/chunks/forms-address-fields.json +221 -0
- package/corpus/chunks/forms-conditional-reveal.json +195 -0
- package/corpus/chunks/gallery-page-shell.json +444 -0
- package/corpus/chunks/grid-2col-entry-cards.json +140 -0
- package/corpus/chunks/grid-kpi-4col.json +164 -0
- package/corpus/chunks/grid-responsive-kpi.json +165 -0
- package/corpus/chunks/hero-cta-simple.json +107 -0
- package/corpus/chunks/hero-cta-split.json +183 -0
- package/corpus/chunks/hero-section-split.json +111 -0
- package/corpus/chunks/icon-text-row.json +60 -0
- package/corpus/chunks/image-caption-tile.json +99 -0
- package/corpus/chunks/image-carousel.json +156 -0
- package/corpus/chunks/image-thumbnail-grid.json +77 -0
- package/corpus/chunks/image-upload-preview.json +118 -0
- package/corpus/chunks/import-mapping-flow.json +972 -0
- package/corpus/chunks/inline-dialog-rename.json +128 -0
- package/corpus/chunks/inline-dialog-schedule.json +154 -0
- package/corpus/chunks/inline-dialog-status.json +179 -0
- package/corpus/chunks/integrations-api-keys-card-list.json +475 -0
- package/corpus/chunks/integrations-connect-form.json +550 -0
- package/corpus/chunks/integrations-grid.json +141 -0
- package/corpus/chunks/integrations-webhooks-empty-state.json +66 -0
- package/corpus/chunks/inventory-list-stock.json +137 -0
- package/corpus/chunks/invite-members.json +153 -0
- package/corpus/chunks/invoice-line-items.json +493 -0
- package/corpus/chunks/kanban-board-3col.json +713 -0
- package/corpus/chunks/kanban-page-shell.json +671 -0
- package/corpus/chunks/key-value-detail-list.json +242 -0
- package/corpus/chunks/keyboard-shortcut-display.json +250 -0
- package/corpus/chunks/labeled-textarea.json +45 -0
- package/corpus/chunks/leaderboard-table.json +140 -0
- package/corpus/chunks/library-browser-search-filter.json +109 -0
- package/corpus/chunks/linked-record-row.json +61 -0
- package/corpus/chunks/loading-skeleton-placeholder.json +387 -0
- package/corpus/chunks/login-form-card.json +207 -0
- package/corpus/chunks/logo-cloud-trusted-by.json +235 -0
- package/corpus/chunks/map-with-location-list.json +293 -0
- package/corpus/chunks/marketing-hero-cta.json +102 -0
- package/corpus/chunks/marketing-page-shell.json +352 -0
- package/corpus/chunks/masonry-gallery.json +154 -0
- package/corpus/chunks/member-edit-drawer.json +236 -0
- package/corpus/chunks/members-active-table-search-filter.json +184 -0
- package/corpus/chunks/members-pending-invites-cards.json +251 -0
- package/corpus/chunks/members-roles-permissions-list.json +146 -0
- package/corpus/chunks/menu-context-actions.json +113 -0
- package/corpus/chunks/metadata-description-list.json +178 -0
- package/corpus/chunks/modal-create-project-form.json +133 -0
- package/corpus/chunks/modal-preferences-tabs.json +147 -0
- package/corpus/chunks/multi-field-form-validation.json +394 -0
- package/corpus/chunks/nav-menu-icons.json +74 -0
- package/corpus/chunks/newsletter-subscription.json +190 -0
- package/corpus/chunks/notification-badges-feed.json +411 -0
- package/corpus/chunks/notification-preferences-panel.json +238 -0
- package/corpus/chunks/onb-completion.json +139 -0
- package/corpus/chunks/onb-extension-install.json +172 -0
- package/corpus/chunks/onb-hero-welcome.json +156 -0
- package/corpus/chunks/onb-import-picker.json +86 -0
- package/corpus/chunks/onb-mobile-handoff.json +121 -0
- package/corpus/chunks/onb-notification-prefs.json +83 -0
- package/corpus/chunks/onb-persona-picker.json +82 -0
- package/corpus/chunks/onb-provider-tiles.json +137 -0
- package/corpus/chunks/onb-settings-review.json +257 -0
- package/corpus/chunks/onb-step-footer.json +121 -0
- package/corpus/chunks/onb-step-header.json +121 -0
- package/corpus/chunks/onb-step-progress.json +140 -0
- package/corpus/chunks/onb-step-shell.json +380 -0
- package/corpus/chunks/onb-story-pane.json +121 -0
- package/corpus/chunks/onb-tutorial-steps.json +193 -0
- package/corpus/chunks/order-confirmation-success-card.json +177 -0
- package/corpus/chunks/order-tracking-timeline.json +131 -0
- package/corpus/chunks/pagination-controls.json +82 -0
- package/corpus/chunks/pane-settings-sidebar.json +204 -0
- package/corpus/chunks/patient-visit-shell.json +191 -0
- package/corpus/chunks/payment-checkout-form.json +341 -0
- package/corpus/chunks/payment-method-form.json +328 -0
- package/corpus/chunks/period-comparison.json +236 -0
- package/corpus/chunks/permission-matrix-table.json +438 -0
- package/corpus/chunks/permissions-matrix-grid.json +111 -0
- package/corpus/chunks/permissions-matrix-summary.json +157 -0
- package/corpus/chunks/permissions-role-picker-radio.json +107 -0
- package/corpus/chunks/permissions-role-picker-select.json +101 -0
- package/corpus/chunks/permissions-share-link.json +256 -0
- package/corpus/chunks/permissions-share-people.json +297 -0
- package/corpus/chunks/permissions-sharing-scopes.json +109 -0
- package/corpus/chunks/plan-selection-form.json +529 -0
- package/corpus/chunks/playground-a2ui.json +181 -0
- package/corpus/chunks/playground-agent-admin.json +117 -0
- package/corpus/chunks/playground-agent-chat.json +126 -0
- package/corpus/chunks/playground-app-shell.json +488 -0
- package/corpus/chunks/playground-chat.json +265 -0
- package/corpus/chunks/playground-construct-canvas.json +118 -0
- package/corpus/chunks/playground-css-channel.json +487 -0
- package/corpus/chunks/playground-gen-ui.json +224 -0
- package/corpus/chunks/playground-render-preview.json +369 -0
- package/corpus/chunks/playground-streams-bridge.json +437 -0
- package/corpus/chunks/playground-table-toolbar.json +38 -0
- package/corpus/chunks/popover-with-content.json +118 -0
- package/corpus/chunks/pricing-tiers.json +561 -0
- package/corpus/chunks/product-tour.json +158 -0
- package/corpus/chunks/profile-public.json +297 -0
- package/corpus/chunks/progress-tracker-milestones.json +294 -0
- package/corpus/chunks/radio-button-group.json +83 -0
- package/corpus/chunks/rating-stars-review-summary.json +259 -0
- package/corpus/chunks/reactions-bar.json +75 -0
- package/corpus/chunks/reactions-picker.json +245 -0
- package/corpus/chunks/real-time-metrics-dashboard.json +344 -0
- package/corpus/chunks/record-detail-drawer-simple-detail.json +296 -0
- package/corpus/chunks/record-detail-drawer-tabbed-detail.json +443 -0
- package/corpus/chunks/referral-share-link.json +128 -0
- package/corpus/chunks/referral-status.json +243 -0
- package/corpus/chunks/reg-address-form.json +825 -0
- package/corpus/chunks/reg-billing-card.json +210 -0
- package/corpus/chunks/reg-brand-scrape.json +599 -0
- package/corpus/chunks/reg-departments-toggle.json +259 -0
- package/corpus/chunks/reg-extended-profile.json +356 -0
- package/corpus/chunks/reg-final-done.json +457 -0
- package/corpus/chunks/reg-helpdesk-grid.json +571 -0
- package/corpus/chunks/reg-import-picker.json +112 -0
- package/corpus/chunks/reg-integrations-grid.json +418 -0
- package/corpus/chunks/reg-invite-form.json +245 -0
- package/corpus/chunks/reg-legal-entity.json +260 -0
- package/corpus/chunks/reg-org-chart-review.json +891 -0
- package/corpus/chunks/reg-profile-identity.json +188 -0
- package/corpus/chunks/reg-step-footer.json +201 -0
- package/corpus/chunks/reg-step-header.json +201 -0
- package/corpus/chunks/reg-step-progress.json +236 -0
- package/corpus/chunks/reg-step-shell.json +605 -0
- package/corpus/chunks/reg-story-pane.json +201 -0
- package/corpus/chunks/reg-success-summary.json +257 -0
- package/corpus/chunks/reg-team-size.json +128 -0
- package/corpus/chunks/reg-usecase-picker.json +104 -0
- package/corpus/chunks/reg-workspace-name.json +159 -0
- package/corpus/chunks/responsive-grid-pattern.json +71 -0
- package/corpus/chunks/responsive-kpi-grid.json +166 -0
- package/corpus/chunks/responsive-row-pattern.json +71 -0
- package/corpus/chunks/responsive-shell-sidebar.json +308 -0
- package/corpus/chunks/responsive-wrap-at-pattern.json +124 -0
- package/corpus/chunks/retention-cohort-default-retention.json +80 -0
- package/corpus/chunks/retention-cohort-stat-pair.json +163 -0
- package/corpus/chunks/retention-cohort-with-legend.json +135 -0
- package/corpus/chunks/revenue-heatmap.json +82 -0
- package/corpus/chunks/role-management.json +272 -0
- package/corpus/chunks/row-action-cluster.json +54 -0
- package/corpus/chunks/row-avatar-name-role.json +71 -0
- package/corpus/chunks/row-icon-label.json +52 -0
- package/corpus/chunks/row-spread-label-value.json +54 -0
- package/corpus/chunks/row-wrap-tags.json +72 -0
- package/corpus/chunks/schedule-meeting-form-card.json +229 -0
- package/corpus/chunks/search-recents-menu.json +195 -0
- package/corpus/chunks/search-results-grouped.json +357 -0
- package/corpus/chunks/search-results-list.json +202 -0
- package/corpus/chunks/search-saved-views.json +356 -0
- package/corpus/chunks/search-with-filters.json +311 -0
- package/corpus/chunks/searchable-picker-modal.json +164 -0
- package/corpus/chunks/section-with-stack.json +48 -0
- package/corpus/chunks/security-active-sessions-devices.json +287 -0
- package/corpus/chunks/security-change-password-form.json +102 -0
- package/corpus/chunks/security-delete-account-danger.json +79 -0
- package/corpus/chunks/segmented-control-billing-tabs.json +164 -0
- package/corpus/chunks/select-multiple-preselected.json +70 -0
- package/corpus/chunks/settings-2fa-setup.json +307 -0
- package/corpus/chunks/settings-admin-page.json +1205 -0
- package/corpus/chunks/settings-appearance-primitives.json +145 -0
- package/corpus/chunks/settings-appearance-theme-panel.json +55 -0
- package/corpus/chunks/settings-appearance.json +81 -0
- package/corpus/chunks/settings-danger-zone-delete-workspace.json +93 -0
- package/corpus/chunks/settings-general-form.json +69 -0
- package/corpus/chunks/settings-integrations.json +298 -0
- package/corpus/chunks/settings-members-invite.json +112 -0
- package/corpus/chunks/settings-notification-activity-checkboxes.json +108 -0
- package/corpus/chunks/settings-notification-channels-switches.json +101 -0
- package/corpus/chunks/settings-page-shell.json +190 -0
- package/corpus/chunks/settings-privacy.json +83 -0
- package/corpus/chunks/settings-profile-security.json +122 -0
- package/corpus/chunks/settings-toggle-switches.json +66 -0
- package/corpus/chunks/sidebar-nav.json +120 -0
- package/corpus/chunks/sidebar-navigation-panel.json +165 -0
- package/corpus/chunks/signup-form-card.json +218 -0
- package/corpus/chunks/signup-team-size-form.json +259 -0
- package/corpus/chunks/single-select-card-form.json +231 -0
- package/corpus/chunks/slider-range-controls.json +119 -0
- package/corpus/chunks/social-media-post-card.json +159 -0
- package/corpus/chunks/sortable-list.json +307 -0
- package/corpus/chunks/sortable-search-paginate-table.json +162 -0
- package/corpus/chunks/split-pane-editor.json +146 -0
- package/corpus/chunks/stack-avatar-badge-overlay.json +53 -0
- package/corpus/chunks/stack-image-shimmer.json +51 -0
- package/corpus/chunks/stat-cards-kpi-dashboard.json +178 -0
- package/corpus/chunks/stats-band-big-numbers.json +175 -0
- package/corpus/chunks/status-dashboard.json +282 -0
- package/corpus/chunks/stepper-form-wizard.json +165 -0
- package/corpus/chunks/subscription-status-renewal-card.json +285 -0
- package/corpus/chunks/survey-rating-form.json +165 -0
- package/corpus/chunks/swiper-product-carousel.json +349 -0
- package/corpus/chunks/swiper-testimonial-carousel.json +279 -0
- package/corpus/chunks/table-empty-state.json +116 -0
- package/corpus/chunks/table-inline-edit-row.json +269 -0
- package/corpus/chunks/table-spreadsheet-cells.json +334 -0
- package/corpus/chunks/table-toolbar-no-search.json +42 -0
- package/corpus/chunks/table-toolbar-with-table.json +208 -0
- package/corpus/chunks/table-with-toolbar-card.json +80 -0
- package/corpus/chunks/tabs-with-panels.json +187 -0
- package/corpus/chunks/tag-chips-filter.json +100 -0
- package/corpus/chunks/team-invite-form.json +380 -0
- package/corpus/chunks/team-members-list.json +341 -0
- package/corpus/chunks/testimonial-grid.json +269 -0
- package/corpus/chunks/testimonial-pull-quote.json +137 -0
- package/corpus/chunks/testimonials-avatar-cards.json +286 -0
- package/corpus/chunks/timeline-events.json +89 -0
- package/corpus/chunks/timezone-selector-basic.json +99 -0
- package/corpus/chunks/timezone-selector-preview.json +104 -0
- package/corpus/chunks/toolbar-icons.json +216 -0
- package/corpus/chunks/toolbar-rich-text-editor.json +230 -0
- package/corpus/chunks/toolbar-tooltips.json +191 -0
- package/corpus/chunks/tooltip-hover-button.json +106 -0
- package/corpus/chunks/tree-file-explorer.json +136 -0
- package/corpus/chunks/tree-table-basic.json +171 -0
- package/corpus/chunks/trial-banner.json +158 -0
- package/corpus/chunks/url-import-form.json +728 -0
- package/corpus/chunks/usage-quota-meter-card.json +217 -0
- package/corpus/chunks/user-identity-row.json +81 -0
- package/corpus/chunks/user-onboarding-checklist.json +301 -0
- package/corpus/chunks/user-profile-card.json +192 -0
- package/corpus/chunks/users-table-badge.json +135 -0
- package/corpus/chunks/verification-document-upload.json +179 -0
- package/corpus/chunks/verification-status.json +97 -0
- package/corpus/chunks/verification-stepper.json +111 -0
- package/corpus/chunks/video-player-controls.json +120 -0
- package/corpus/chunks/webhook-config.json +209 -0
- package/corpus/chunks/webhooks-list.json +204 -0
- package/corpus/chunks/wizard-drawer-three-step-wizard.json +443 -0
- package/corpus/manifest.d.ts +4 -0
- package/corpus/manifest.json +6 -0
- package/corpus/scripts/chunk-library.d.ts +4 -0
- package/corpus/scripts/chunk-library.js +335 -0
- package/node-shims.d.ts +48 -0
- package/package.json +215 -0
- package/retrieval/CHANGELOG.md +1073 -0
- package/retrieval/README.md +71 -0
- package/retrieval/anti-patterns.js +189 -0
- package/retrieval/authoring/index.d.ts +4 -0
- package/retrieval/authoring/index.js +9 -0
- package/retrieval/authoring/web-research.js +220 -0
- package/retrieval/catalog.js +250 -0
- package/retrieval/component-catalog.js +168 -0
- package/retrieval/component-entry.js +80 -0
- package/retrieval/context-assembler.js +174 -0
- package/retrieval/domain-router.js +417 -0
- package/retrieval/embedding/chunk-embedding-retriever.js +117 -0
- package/retrieval/embedding/embedding-provider.js +72 -0
- package/retrieval/embedding/index.d.ts +4 -0
- package/retrieval/embedding/index.js +2 -0
- package/retrieval/feedback/dialog-recorder.js +107 -0
- package/retrieval/feedback/feedback-analyzer.js +180 -0
- package/retrieval/feedback/feedback-store.js +194 -0
- package/retrieval/feedback/feedback.js +117 -0
- package/retrieval/feedback/gap-registry.js +80 -0
- package/retrieval/feedback/human-signal.js +113 -0
- package/retrieval/feedback/index.d.ts +4 -0
- package/retrieval/feedback/index.js +24 -0
- package/retrieval/feedback/submit-feedback.js +45 -0
- package/retrieval/index.d.ts +4 -0
- package/retrieval/index.js +53 -0
- package/retrieval/intent/clarity.js +139 -0
- package/retrieval/intent/decomposer.js +124 -0
- package/retrieval/intent/index.d.ts +4 -0
- package/retrieval/intent/index.js +18 -0
- package/retrieval/intent/intent-alignment.js +172 -0
- package/retrieval/intent/intent-categorizer.js +69 -0
- package/retrieval/intent/intent-gate.js +96 -0
- package/retrieval/intent/prompt-analyzer.js +162 -0
- package/retrieval/wiring-catalog.js +168 -0
- package/validate/catalog-validator.d.ts +4 -0
- package/validate/catalog-validator.js +327 -0
- package/validate/semantic/cache.js +54 -0
- package/validate/semantic/classify-intent.js +128 -0
- package/validate/semantic/index.js +163 -0
- package/validate/semantic/intent-specs.js +162 -0
- package/validate/semantic/judge.js +180 -0
|
@@ -0,0 +1,1707 @@
|
|
|
1
|
+
# Changelog — @adia-ai/a2ui-compose
|
|
2
|
+
|
|
3
|
+
## [0.8.36] — 2026-08-13
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **This package was uninstallable from npm, and unbootable if it had installed (gh#1186).** Two independent defects, found while chasing why `@adia-ai/a2ui-mcp@0.8.35` could not run standalone:
|
|
7
|
+
- **`"@genui/producer": "*"` in `dependencies`.** That package is a vendored tree (`packages/genui/*`, synced by `scripts/build/sync-genui.mjs`, guarded by `check:genui-vendor`) marked `"private": true`, so it is not on the registry and never will be. `npm install @adia-ai/a2ui-compose` 404'd before any code ran — no import fix could have rescued it. `core/plan-turn.js` needed exactly two pure, dependency-free functions from it, so they now live here as `core/plan-primitives.js`; the dependency is gone. `core/plan-primitives.test.js` runs both implementations over 17 shared fixtures and fails if the copy drifts from the vendored upstream, and being a test it never ships.
|
|
8
|
+
- **42 module specifiers walked out of the package root** (`../../validator/validator.js`, `../../retrieval/intent/clarity.js`, `../../../llm/llm-bridge.js`, `../../../runtime/registry.js`, `../../corpus/scripts/chunk-library.js`, …). They resolve only because the monorepo puts those directories there. All now import the sibling by its npm specifier.
|
|
9
|
+
- **`shared/` was missing from `files` (gh#1186).** `core/generator.js` and the four free-form composer entry points import `shared/validate-and-repair.js` — inside this package, but never packed. Any consumer reaching the validate-and-repair loop got `ERR_MODULE_NOT_FOUND`. Now shipped.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **`exports` gains `./core/*`, `./strategies/*`, `./shared/*`, `./transpiler/*`.** Additive — the fixed keys (`./core`, `./strategies/zettel`, `./strategies/registry`, `./transpiler`, `./evals`, and the `./engines/*` aliases) all still resolve to the same files, and Node prefers an exact key over a wildcard. Needed so siblings can name the modules they actually use (`@adia-ai/a2ui-compose/strategies/zettel/chunk-refiner`) instead of reaching in by path.
|
|
13
|
+
- **`@adia-ai/a2ui-corpus` declared as a dependency.** The zettel chunk composer/refiner/synthesizer have always used its chunk library; the dependency was simply never written down.
|
|
14
|
+
|
|
15
|
+
## [0.8.35] — 2026-08-13
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **The default `auto` engine now gates every non-terminal round on schema + catalog conformance, even with no caller `ctx.gate` (gh#1135, WS-4 SPEC REQ-01).** `generateAutoAdapter` (`strategies/registry.js`) supplies a `defaultAcceptanceGate` — the same `validateSchema`/`validateMessages` validators the adia-producer's own always-on gate composes, reused directly rather than importing that consumer's module — ANDed with any caller-supplied gate (never replaced by it), so a lax caller gate can no longer re-open the seam. Previously the exit gate only ran when a caller explicitly passed `ctx.gate`; the default `auto` path passed none.
|
|
19
|
+
- **`judgeEngineResult` (`strategies/escalation.js`) no longer blanket-accepts a strong-emission strategy (`composition-match`/`composition-iterated`/`free-form-composed`) — gh#1135 REQ-02.** When the engine has normalized its own `validation.valid: false`, the ladder now rejects with a new `strong-emission-invalid` code and climbs, instead of trusting the strategy label unconditionally. An engine reporting no `validation.valid` field rides the same pass-through as before, caught by REQ-01's default gate instead.
|
|
20
|
+
- **The ladder's terminal engine (`monolithic-pro` / `generate-pro.js`) now returns a first-class `acceptance: {accepted, exhausted, failures}` block (gh#1135 REQ-03).** The terminal step is still never exit-gated (the ladder's floor, availability contract unchanged — messages are always returned) but its own repair-loop exhaustion, previously computed and silently discarded, now survives onto the result. A new `buildFailures()` helper in `shared/validate-and-repair.js` normalizes schema + catalog failures into the block's `{code, message}[]` shape.
|
|
21
|
+
- **`projectEngineResult` (`strategies/registry.js`) — the canonical consumer-facing projection of an engine result, including `acceptance` (gh#1135 REQ-04).** A serialization boundary that hand-rolls its own field whitelist silently drops a newly added first-class field; the MCP `generate_ui` tool (`@adia-ai/a2ui-mcp`) now builds its response off this projection instead of restating the field list.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- **`free-form-composer`'s `validation.score` is now the measured `schemaCheck.validation.score`, not the hardcoded 85 (gh#1135, WS-4 SPEC REQ-05).** Full schema/catalog validation has run on every `free-form-composed` result since the A2UI overhaul (Phase 3), but nothing read its score — the release trip-wire's `avgScoreWhenEmitted` floor (`check-free-form-eval-regression.mjs`) could therefore only move when the pipeline broke outright. `validation.valid` is now first-class too (REQ-02); `schemaValid`/`schemaValidation` remain as the pre-existing side fields. The floor itself is re-derived from the first honest measured run under adia-a2ui's ownership (preserve-not-regress cadence) — not touched by this change.
|
|
25
|
+
|
|
26
|
+
## [0.8.34] — 2026-08-11
|
|
27
|
+
|
|
28
|
+
### Maintenance
|
|
29
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the lockstep version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.34 work shipped in date-range-picker unified selection, core boolean-reflect fix, nav state-color spec, component polish + docs repair wave. See `packages/web-components/CHANGELOG.md#0834--2026-08-11` for details.
|
|
30
|
+
- **`transpiler/` touched in this release window** (4 file(s), e.g. `transpiler/command-options.test.js`) — carried by the entries above.
|
|
31
|
+
|
|
32
|
+
## [0.8.33] — 2026-08-11
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- **`figure` / `figcaption` / `s` in `HTML_TAG_MAP` (gh#853).** `figure` → `Card` (self-contained content unit, same treatment `article` already gets); `figcaption` → `Text[variant=caption]` (text.yaml's own `caption` variant docstring names "image captions" as its intended use). `<s>` (strikethrough) → `Text[variant=body]`, same phrasing-content treatment `strong`/`em`/`blockquote` already get — no primitive carries a strike/decoration prop today, a platform gap beyond this tag-mapping fix. All three previously fell to the Unknown fallback (`/site/patterns/admin-sidebar`, `/site/patterns/kanban-board`).
|
|
37
|
+
- **`extractCatalogProps` gains an `object` branch, sibling of the existing `array` one (gh#853).** Object-typed catalog props (`InvoiceDetail.invoice`, `NotificationPreferences.channelEnabled`) are JSON-encoded HTML attributes exactly like array-typed ones (TKT-0010) — parsed the same way, just asserting a plain object instead of an array. Previously fell through to the generic string branch (never taken, since `raw` never satisfied a JSON-object grammar check that didn't exist) and the prop was silently dropped.
|
|
38
|
+
- **`extractCatalogProps` falls back to the kebab-cased attribute name for camelCase catalog prop keys (gh#853).** `hrefPattern`/`channelEnabled`-shaped catalog keys are authored as kebab-case HTML attributes per the yaml's own `attribute:` override, but that override isn't preserved into the generated catalog and HTML attribute names are always lowercased on parse (`channelenabled` ≠ `channelEnabled`), so the direct lookup silently missed every one of them. Generalized fix, not a per-component special-case — closes the same drift class §163's catalog-driven pass already targets.
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- **Unknown tags now always report through `unmappedTags` (gh#848).** The transpiler's last-resort `// 6. Unknown → Column` branch dropped the element's props and said nothing anywhere; a childless custom element (the normal shape for a data-driven composite like `<admin-roster-ui>`) became a literally empty box, and 24 site pages shipped blank sections for four days before gh#847's instrumentation named the class. Two changes: (1) **`transpileHTML` now always returns `unmappedTags: string[]`** — every tag that reached the Unknown branch, so no caller has to rediscover the loss by eyeballing output. Purely additive; `messages`/`validation`/`suggestions` are unchanged. (2) a new **`unknownTagPolicy` option** (`'silent'` default | `'placeholder'`) controls the *payload*: `placeholder` emits `Column[data-unmapped-tag] > Alert(variant="warning")` naming the tag, plus the element's own converted children, so the degrade is visible on a rendered page. Built from REGISTERED constructs only — the wire payload stays valid (validator's `allTypesRegistered` passes) — and carries no raw CSS, since alert-ui's warning variant is entirely semantic-token driven.
|
|
43
|
+
- **The policy split is deliberate.** `placeholder` is opted into by the docs/site-a2ui conversion path (`scripts/build/lib/docs-transpiler.mjs`), whose only channel to a human is the rendered page. The default stays `silent` for the corpus harvester (`harvest-chunks.mjs`) and the zettel chunk-synthesizer, which produce REUSABLE composition templates — an injected developer notice there would travel into generated product UI — and for `packages/llm/server.js`. Those callers get the same information via `unmappedTags`.
|
|
44
|
+
- **MCP `convert_html` output gains one additive top-level key.** The tool returns `JSON.stringify(transpileHTML(...))` verbatim, so `unmappedTags` now appears alongside `messages`/`validation`/`suggestions`. No input schema change, no key removed, no key retyped; the tool's payload for fully-mapped HTML differs only by `"unmappedTags": []`. Dry-run diff taken across mapped / unknown-bearing / empty inputs before landing (recorded in gh#848); `npm run mcp:smoke` 4/4.
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- **`dl` / `dt` / `dd` in `HTML_TAG_MAP`** (`DescriptionList` / `DescriptionTerm` / `DescriptionDetail`). `<description-list-ui>` renders a native `dl` and its documented children are native `dt`/`dd`, which previously fell to the Unknown fallback — the term/detail grid collapsed into nested containers on every converted page carrying a description list.
|
|
49
|
+
|
|
50
|
+
### Maintenance
|
|
51
|
+
- **`strategies/` touched in this release window** (1 file(s), e.g. `monolithic/_shared.js`) — carried by the entries above.
|
|
52
|
+
|
|
53
|
+
## [0.8.32] — 2026-08-09
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
- **Retrieval-sourced compositions are refinable at all (gh#832).** Every Tier-1 hit returned `plan: null`, and a plan is the only thing `refineFromIntent`/`applyOps` can address — so both declined with `priorState has no plan; cannot refine`, and the product's refine verb (`refine_composition`, the chat agent's refine turn) silently no-opped on the *entire* retrieval tier, real LLM or stub. `composeFromIntent`'s fast path now emits the plan that describes what it actually returned: `{ page: <hit>, slot_bindings: {} }` — a single-chunk plan, the shape a direct hit genuinely has. Both tiers now emit the same structure, so nothing downstream (`get_state`, `_debug.plan`, the eval, refine) has to special-case which tier produced a composition. Chosen over deriving a plan inside refine (identical fidelity, but `compose_from_chunks`, `get_state` and `_debug.plan` would all keep advertising `null`) and over a plan-less "re-compose with context" branch (a second refine path that discards the prior UI — and it falls out of this fix for free: a single-chunk plan has no addressable slots, so the only legal op is `replacePage`, which is re-compose-with-context expressed in the existing validated op vocabulary). The refiner's locator/modifier prompts learn that case explicitly — bind the prior chunk into the new shell alongside the requested addition, so the existing UI survives a refinement — and the prior plan's own chunks are force-added to the modifier's catalog, which is pre-searched on the *change* and so had no reason to surface the chunk being refined. Measured on the 20-intent holdout, `--real-llm`: **refine_applied 0 → 10, refine_skipped 10 → 0, coverage scored on 10/20 → 20/20 rows, avg 95, 20/20 passing**, every refine row scored on real post-refinement markup. Zettel (cov 93 / avg 90 / MRR 1.00) and free-form (cov 100 / avg 85 / F1 62) floors unchanged.
|
|
57
|
+
- **`composeFromPlan` is the single materializer for both tiers (gh#832).** The retrieval path expanded `<!-- nested: … -->` markers (gh#803) and the composer did not, so the same chunk rendered differently depending on which path produced it — and replaying a retrieval-sourced plan through the composer, which is what *every refine turn does*, silently degraded the UI back to skeleton comments. Measured: **48 of 497 block chunks** round-tripped to a skeleton; `chunkHtml()` now resolves nested markers page-scoped, taking exact plan→HTML round-trip from **449/497 to 497/497**. Without this the new plan would be decorative rather than honest. `composeFromPlan` also stops warning "expected page or panel" for a chunk-rooted plan that binds no slots (a legitimate single-chunk composition, not a mis-picked shell), and `validatePlan` gains `{ allowChunkRoot }` — default OFF so the synthesis tier's LLM keeps its "pick a page/panel shell" guardrail, ON for a plan replayed from a prior composition.
|
|
58
|
+
- **Tier-1 retrieval stopped returning empty shells (gh#803).** `composeFromIntent`'s retrieval fast path handed back the chunk's raw HTML; for the 47 block chunks harvested from pages with nested markers that is a skeleton of `<!-- nested: … -->` comments, so a "sign-in form" composed to a card with nothing in it. The hit is now expanded through `resolveNestedChunks()` (page-scoped) and scope-drift is computed against the bound chunk *plus* its nested chunks, so inlining doesn't fire a false drift warning.
|
|
59
|
+
- **Monolithic prompts teach the catalog's real Tab model (gh#757).** All three copies of the pre-catalog "content panels are SIBLINGS of Tabs" doctrine (component guide + example, structure-rules digest incl. its continuation example, generate-pro decomposition hint) now match tab.yaml/the catalog rules: panel content lives INSIDE its Tab, the parent auto-hides inactive panels. The old doctrine yielded all-panels-visible tab UIs and contradicted the rules text injected alongside it (same stale commit gh#754 removed from the validator).
|
|
60
|
+
|
|
61
|
+
### Maintenance
|
|
62
|
+
- **`strategies/` touched in this release window** (6 file(s), e.g. `monolithic/_shared.js`) — carried by the entries above.
|
|
63
|
+
|
|
64
|
+
## [0.8.31] — 2026-08-07
|
|
65
|
+
|
|
66
|
+
### Maintenance
|
|
67
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the lockstep version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.31 work shipped in post-0.8.30 fix wave: double-submit boundaries, list-item render gate, segmented allow-empty + adapter kebab-case booleans, MCP multi-session + idle TTL, feedback signal:none, swatch auto-contrast, tabs strip-gap spacing + vertical clearance. See `packages/web-components/CHANGELOG.md#0831--2026-08-07` for details.
|
|
68
|
+
|
|
69
|
+
## [0.8.30] — 2026-08-07
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- **`auto` engine — the escalation ladder as an `@adia-ai/agent` workflow (gh#664).** `strategies/cascade.js` declares zettel → free-form → monolithic-instant → monolithic-pro as `defineWorkflow` data (`ENGINE_LADDER`), each non-terminal step's `until` predicate carrying the escalation rule; `runCascade(ctx, { ladder, gate, emit })` runs it and the result's `attempts` is the escalation trace (`escalationsOf()` renders it as `{from, to, trigger}`). Reachable as `generateUI({ engine: 'auto' })`; `auto` joins the reserved engine names.
|
|
73
|
+
- **`strategies/escalation.js` — the one hit-or-climb rule.** `judgeEngineResult()` / `accepts()` / `isNonEmissionStrategy()` / `isStrongEmissionStrategy()` moved down from `@genui/adia-producer/outcome-to-verdict.js` to the layer that authors the strategy labels they read; the producer bridge re-exports them, unchanged in name and behavior.
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
- **`monolithic-instant`'s escalation to `monolithic-pro` is a two-step workflow** rather than an inline `if` — same one-hop rule, same warn + counter, now spelled the way the full ladder is spelled.
|
|
77
|
+
- **The cascade's gate is declared once as the workflow exit gate (gh#665).** `defineCascade({ gate })` now hands the gate to `defineWorkflow`'s `exitGate` instead of restating it inside every step's `until`. The ladder's floor is unchanged and still not gated (a terminal step has no `until`), so `runCascade`'s behavior is identical for every existing caller; `defineCascade()` output gains an `exitGate` property when a gate was supplied.
|
|
78
|
+
- **Escalation triggers are recorded, not recomputed (gh#665).** Each non-terminal step's `until` returns a verdict carrying `judgeEngineResult`'s feedback code, so `escalationsOf()` reads `attempt.reason` (re-judging survives only as the fallback for boolean predicates). A gate rejection now reads `gate-rejected` because that is what happened — the attempt also carries `gateRejected: true` — rather than as the leftover of a re-judge that found nothing. Attempts additionally carry `round` and optional `detail`/`data`.
|
|
79
|
+
- **The instant→pro counter and warn moved out of the `until` predicate** into the pro step's `run` (PR #669 nit N2). They were correct only while the harness called `until` exactly once per step; in `run` they fire once per actual hop by construction.
|
|
80
|
+
- **`llmAdapter` reaches engines through the harness's services channel**, with the `input.llmAdapter` fallback intact for callers assembling the older flat engine context.
|
|
81
|
+
|
|
82
|
+
## [0.8.29] — 2026-08-06
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- **Plan-envelope executor** — `core/plan-turn.js`: `runPlannedTurn()` strings multiple single-surface engine calls under one inspectable surface manifest, enforcing manifest order via the vendored `checkExecutionAgainstPlan` shared predicate and throwing a diagnostics-bearing `PlanViolationError` on off-manifest/out-of-order execution; `synthesizeTurn` derives the turn's new/updated/closed summary. Scoped to zettel/chunk-zettel per ORCHESTRATION ruling 2; monolithic-instant exempt by design (gh#648, PR #654; standard: genui-system#15, R-O10–R-O13).
|
|
86
|
+
|
|
87
|
+
## [0.8.28] — 2026-08-05
|
|
88
|
+
|
|
89
|
+
### Maintenance
|
|
90
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the lockstep version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.28 work shipped in sideEffects tree-shaking fix + CSS barrel regen (gh#625/632). See `0828--2026-08-05` for details.
|
|
91
|
+
|
|
92
|
+
## [0.8.27] — 2026-08-05
|
|
93
|
+
|
|
94
|
+
### Maintenance
|
|
95
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the lockstep version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.27 work shipped in menu subtitle + roster migration, agent model pins, proper deflake, release tooling (gh#614/616/617/618). See `packages/web-modules/CHANGELOG.md#0827--2026-08-05` for details.
|
|
96
|
+
|
|
97
|
+
## [0.8.26] — 2026-08-05
|
|
98
|
+
|
|
99
|
+
### Fixed
|
|
100
|
+
- **The streaming path's hand-rolled one-shot repair skipped the catalog check** (`generator.js`) — now routes through the shared `validate-and-repair` loop with anti-pattern folding and catalog validation, same as the pro/thinking paths (GK-3, gh#583).
|
|
101
|
+
|
|
102
|
+
### Maintenance
|
|
103
|
+
- **`core/` touched in this release window** (1 file(s), e.g. `core/generator.js`) — carried by the entries above.
|
|
104
|
+
|
|
105
|
+
## [0.8.25] — 2026-07-31
|
|
106
|
+
|
|
107
|
+
### Maintenance
|
|
108
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.25 work shipped in theme-panel scoped-target [parametric] density/radius fix (gh#570) + System scheme option; anchor-bar-ui; stat-ui band chart layout; chart-ui dots/series-emphasis. See `packages/web-components/CHANGELOG.md#0825--2026-07-31` for details.
|
|
109
|
+
|
|
110
|
+
## [0.8.24] — 2026-07-30
|
|
111
|
+
|
|
112
|
+
### Maintenance
|
|
113
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.24 work shipped in requiredIcons drift cleared across 16 components + checker comment handling (gh#550), worktree bootstrap workspace-link hardening + retrieval corpus-pin fix (gh#554), list-item two-line icon centering (gh#558), card footer bottom-pinning (gh#559). See `packages/web-components/CHANGELOG.md#0824--2026-07-30` for details.
|
|
114
|
+
|
|
115
|
+
## [0.8.23] — 2026-07-30
|
|
116
|
+
|
|
117
|
+
### Maintenance
|
|
118
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.23 work shipped in operator-report day: 20+ fixes, BREAKING --a-font removal, deployed-site freeze fix, plugin rename to adia-ui-kit-*. See `packages/web-components/CHANGELOG.md#0823--2026-07-30` for details.
|
|
119
|
+
|
|
120
|
+
## [0.8.22] — 2026-07-29
|
|
121
|
+
|
|
122
|
+
### Maintenance
|
|
123
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.22 work shipped in select-ui aria-selected action-row fix, combobox radio indicator, form-popover summary hardening, resumable release Step 10. See `packages/web-components/CHANGELOG.md#0822--2026-07-29` for details.
|
|
124
|
+
|
|
125
|
+
## [0.8.21] — 2026-07-28
|
|
126
|
+
|
|
127
|
+
### Maintenance
|
|
128
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.21 work shipped in card/table/select/form-popover fixes from adia-v2 adoption + three drift gates (gh#473, gh#425, gh#435). See `packages/web-components/CHANGELOG.md#0821--2026-07-28` for details.
|
|
129
|
+
|
|
130
|
+
## [0.8.20] — 2026-07-28
|
|
131
|
+
|
|
132
|
+
### Fixed
|
|
133
|
+
- **The npm tarball no longer ships `*.test.js`** (gh#462) — the `files` roster excluded examples/html but never unit tests, so 6 test file(s) rode the 0.8.19 tarball. `!**/*.test.js` appended as the roster's LAST entry (npm's files globbing is order-sensitive — a leading exclude is overridden by later directory includes). Proof: `npm pack --dry-run` → 0 test files, runtime files intact.
|
|
134
|
+
|
|
135
|
+
## [0.8.19] — 2026-07-27
|
|
136
|
+
|
|
137
|
+
### Maintenance
|
|
138
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.19 work shipped in form/ cluster publishes (form-popover-ui installable, gh#448) + select-ui summary-label (gh#442) + row-hover container-ladder token fix. See `packages/web-modules/CHANGELOG.md#0819--2026-07-27` for details.
|
|
139
|
+
|
|
140
|
+
## [0.8.18] — 2026-07-27
|
|
141
|
+
|
|
142
|
+
### Maintenance
|
|
143
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.18 work shipped in form-popover-ui rename + 9-test surface + first passing rendered-dom probe (harness repaired for all composites). See `packages/web-modules/CHANGELOG.md#0818--2026-07-27` for details.
|
|
144
|
+
|
|
145
|
+
## [0.8.17] — 2026-07-27
|
|
146
|
+
|
|
147
|
+
### Maintenance
|
|
148
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.17 work shipped in one selection language (radios + tonal + container tier) · form-popover module · check:demo-routes sweep. See `packages/web-components/CHANGELOG.md#0817--2026-07-27` for details.
|
|
149
|
+
|
|
150
|
+
## [0.8.16] — 2026-07-26
|
|
151
|
+
|
|
152
|
+
### Maintenance
|
|
153
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.16 work shipped in text-on-fill AA (90/90 pairs) + release-gate roster 18→22 + the theming guide. See `packages/web-components/CHANGELOG.md#0816--2026-07-26` for details.
|
|
154
|
+
|
|
155
|
+
## [0.8.15] — 2026-07-26
|
|
156
|
+
|
|
157
|
+
### Maintenance
|
|
158
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.15 work shipped in hover darkens in both schemes (600/550 role + filled-button wiring); find-unused adoption skill + measured routing evals. See `packages/web-components/CHANGELOG.md#0815--2026-07-26` for details.
|
|
159
|
+
|
|
160
|
+
## [0.8.14] — 2026-07-25
|
|
161
|
+
|
|
162
|
+
### Maintenance
|
|
163
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.14 work shipped in overlay surface plane + nav-item selected fill + theme neutral hues + examples.md drift gate. See `packages/web-components/CHANGELOG.md#0814--2026-07-25` for details.
|
|
164
|
+
|
|
165
|
+
## [0.8.13] — 2026-07-25
|
|
166
|
+
|
|
167
|
+
### Maintenance
|
|
168
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.13 work shipped in 12 named theme identities + select-menu Theme row in theme-panel; fixes scale.css wiring, Preset/Reset UX, and a Theme-select XSS finding. See `packages/web-modules/CHANGELOG.md#0813--2026-07-25` for details.
|
|
169
|
+
|
|
170
|
+
## [0.8.12] — 2026-07-24
|
|
171
|
+
|
|
172
|
+
### Maintenance
|
|
173
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.12 work shipped in tag-ui size parity (badge-ui sm/md/lg); plugin skills learn v0.8.11 size model; primitive count fix. See `packages/web-components/CHANGELOG.md#0812--2026-07-24` for details.
|
|
174
|
+
|
|
175
|
+
## [0.8.11] — 2026-07-23
|
|
176
|
+
|
|
177
|
+
### Maintenance
|
|
178
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.11 work shipped in sm/md/lg size model + ancestor [scale] context; adia-wordmark-ui; forge release-cycle hardening. See `packages/web-components/CHANGELOG.md#0811--2026-07-23` for details.
|
|
179
|
+
|
|
180
|
+
## [0.8.10] — 2026-07-20
|
|
181
|
+
|
|
182
|
+
### Maintenance
|
|
183
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.10 work shipped in tag-ui accent variant, dialog-scrim/card-ui fixes; adia-charts/adia-tables skills. See `packages/web-components/CHANGELOG.md#0810--2026-07-20` for details.
|
|
184
|
+
|
|
185
|
+
## [0.8.9] — 2026-07-19
|
|
186
|
+
|
|
187
|
+
### Maintenance
|
|
188
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.9 work shipped in select-ui mark visual (gh#339); release-tooling hardened (branch creation, settle-wait poll, pr-bridge draft guard). See `packages/web-components/CHANGELOG.md#unreleased` for details.
|
|
189
|
+
|
|
190
|
+
## [0.8.8] — 2026-07-19
|
|
191
|
+
|
|
192
|
+
### Maintenance
|
|
193
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.8 work shipped in Type scale tightened one step (body 14px / ui 13px base); release machinery hardened (pr-bridge, mechanized pins, single-sourced roster). See `packages/web-components/CHANGELOG.md#088--2026-07-19` for details.
|
|
194
|
+
|
|
195
|
+
## [0.8.7] — 2026-07-19
|
|
196
|
+
|
|
197
|
+
### Maintenance
|
|
198
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.7 work shipped in factory enrichment (adia-patterns/adia-audit + harvests), forge dogfood/gate fixes, a2ui-corpus content-hash freshness, bundle rebuilds. See `packages/plugins/adia-ui-factory/CHANGELOG.md#087--2026-07-19` for details.
|
|
199
|
+
|
|
200
|
+
## [0.8.6] — 2026-07-18
|
|
201
|
+
|
|
202
|
+
### Maintenance
|
|
203
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.6 work shipped in SSR attribute-replay fix + table declarative data + token repoints (@adia-ai/web-components), gh#268 forge modernization campaign (adia-forge). See `packages/web-components/CHANGELOG.md#086--2026-07-18` for details.
|
|
204
|
+
|
|
205
|
+
## [0.8.5] — 2026-07-17
|
|
206
|
+
|
|
207
|
+
### Maintenance
|
|
208
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.5 work shipped in gemini production passthrough + hardening (@adia-ai/llm), SSR browser-API guards + gh issue 276 wave-4 button-ui/option-card-ui migrations (@adia-ai/web-components), admin-sidebar SSR collapse fix (@adia-ai/web-modules), kbd-ui A2UI-render fix (@adia-ai/a2ui-runtime), full chunk/embeddings regen (@adia-ai/a2ui-corpus). See `packages/llm/CHANGELOG.md#085--2026-07-17` for details.
|
|
209
|
+
|
|
210
|
+
## [0.8.4] — 2026-07-16
|
|
211
|
+
|
|
212
|
+
### Maintenance
|
|
213
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.4 work shipped in gen-UI provider routing by model id + gemini fixes (@adia-ai/llm), focus-ring/caret rulings + the button-ui purge (@adia-ai/web-components), chat-shell html messages (@adia-ai/web-modules). See `packages/llm/CHANGELOG.md#084--2026-07-16` for details.
|
|
214
|
+
|
|
215
|
+
## [0.8.3] — 2026-07-16
|
|
216
|
+
|
|
217
|
+
### Maintenance
|
|
218
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.3 work shipped in the two Claude Code plugins — the adia-tokens knowledge pack + command refresh (adia-ui-factory) and the release-tooling invariant-3 reconciliation (adia-ui-forge); see `packages/plugins/adia-ui-factory/CHANGELOG.md#083--2026-07-16`.
|
|
219
|
+
## [0.8.2] — 2026-07-16
|
|
220
|
+
|
|
221
|
+
### Maintenance
|
|
222
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.2 work — the `button-ui` ellipsis fix + tarball-shipped MIGRATION.md (@adia-ai/web-components) and the factory-plugin modernization campaign (adia-ui-factory; gh#259) — see `packages/web-components/CHANGELOG.md#082--2026-07-16`.
|
|
223
|
+
## [0.8.1] — 2026-07-15
|
|
224
|
+
|
|
225
|
+
### Maintenance
|
|
226
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.1 work — the `tags-input-ui` chip slot template (TKT-0023) + the `--a-link` AA contrast fix — shipped in @adia-ai/web-components; see `packages/web-components/CHANGELOG.md#081--2026-07-15`.
|
|
227
|
+
## [0.8.0] — 2026-07-15
|
|
228
|
+
|
|
229
|
+
### Changed
|
|
230
|
+
- **`strategies/monolithic/_shared.js` — token-name sweep** onto `--md-sys-color-*` (Material color-token adoption, lockstep with @adia-ai/web-components@0.8.0 — see that CHANGELOG + `.claude/docs/MIGRATION GUIDE.md` § v0.8.0).
|
|
231
|
+
## [0.7.28] — 2026-07-14
|
|
232
|
+
|
|
233
|
+
A2UI pipeline overhaul (comparing gen-ui-kit's system against a sibling
|
|
234
|
+
project's from-scratch A2UI implementation surfaced a concrete gap: only
|
|
235
|
+
one of six generation strategies ran a genuine closed-loop validate→retry
|
|
236
|
+
before returning; the rest either skipped it, did a single repair shot,
|
|
237
|
+
or validated a narrower plan/grounding contract).
|
|
238
|
+
|
|
239
|
+
### Added
|
|
240
|
+
|
|
241
|
+
- **`packages/a2ui/compose/shared/validate-and-repair.js`** — a shared
|
|
242
|
+
closed-loop validate→repair helper, extracted from `generate-thinking`'s
|
|
243
|
+
original inline loop (schema + Ajv catalog + anti-pattern conformance,
|
|
244
|
+
bounded LLM-fed repair attempts). Every LLM-calling engine can now share
|
|
245
|
+
one implementation instead of hand-rolling its own; escalation policy
|
|
246
|
+
(retry vs. give up vs. escalate to a bigger tier) stays entirely with
|
|
247
|
+
the caller — the module only reports `{valid, exhausted, attempts,
|
|
248
|
+
failures}`.
|
|
249
|
+
|
|
250
|
+
### Fixed
|
|
251
|
+
|
|
252
|
+
- **`generate-pro` — replaces its single hardcoded repair shot with the
|
|
253
|
+
shared closed loop** (`maxAttempts: 2`, reflecting pro's cheaper cost
|
|
254
|
+
tier vs. thinking's 3) and adds Ajv catalog-schema coverage it never had
|
|
255
|
+
before.
|
|
256
|
+
- **`free-form-composer` — now runs a real schema/catalog/anti-pattern
|
|
257
|
+
check (validate-only) on its transpiled output**, which it previously
|
|
258
|
+
never did at all (a hardcoded `score: 85` regardless of actual
|
|
259
|
+
validity). This surfaced a real, previously-invisible defect: the
|
|
260
|
+
synthesized root component used `id: 'free-form-root'` instead of the
|
|
261
|
+
`'root'` convention every other engine's root uses, which
|
|
262
|
+
`validator.js`'s `checkHasRootComponent` hard-fails on — fixed at the
|
|
263
|
+
source (`transpile.js`). `score` stays 85 on the success path
|
|
264
|
+
(unchanged), so the tuned `eval:diff` floors don't shift as a side
|
|
265
|
+
effect of adding a measurement; new `schemaValid`/`schemaValidation`
|
|
266
|
+
fields are additive.
|
|
267
|
+
- **`monolithic-instant` no longer silently returns a hard-fail's broken
|
|
268
|
+
output.** The dispatcher (`strategies/registry.js`'s
|
|
269
|
+
`generateInstantAdapter`) now escalates a hard-fail to `generate-pro`
|
|
270
|
+
exactly once, only when an `llmAdapter` is available — capped at one
|
|
271
|
+
hop by construction (a pro-mode failure returns straight to the
|
|
272
|
+
original caller, never chains to thinking). A counter +
|
|
273
|
+
`console.warn` ship from day one, since this silently converts a
|
|
274
|
+
0-cost request into a billed LLM call.
|
|
275
|
+
- **`chunk-zettel` now emits a real component graph and qualifies for
|
|
276
|
+
the shared closed loop (TKT-0009).** `composeFromIntent`
|
|
277
|
+
(`chunk-synthesizer.js`) previously returned only a raw HTML string,
|
|
278
|
+
which both callers wrapped into a single node with an unregistered
|
|
279
|
+
`component: 'article'` type — full schema validation could only ever
|
|
280
|
+
report `invalid`. Ratified direction: reuse `transpileHTML()` (the
|
|
281
|
+
same converter `harvest-chunks.mjs` already runs at corpus-admission
|
|
282
|
+
time) to produce a real `template` component array on every path (a
|
|
283
|
+
chunk's own precomputed template when available, else transpiled on
|
|
284
|
+
demand). Both callers (`registry.js`'s `generateChunkZettelAdapter`,
|
|
285
|
+
`generator-adapter.js`'s `bridgeToChunkSynthesis`) now prefer
|
|
286
|
+
`result.template` and route the final messages through
|
|
287
|
+
`validate-and-repair.js` (validate-only). Verified live: Tier-1
|
|
288
|
+
retrieval and Tier-2 synthesis intents both produce `valid:true`
|
|
289
|
+
component graphs (score 90/92); zero regression confirmed via a
|
|
290
|
+
stash-based before/after comparison of `eval:compose-from-chunks`
|
|
291
|
+
(the eval calls `composeFromIntent` directly and never touches the
|
|
292
|
+
caller code this change modified).
|
|
293
|
+
- **`transpiler/transpiler-maps.js` — dynamic array props (`Chart.data`,
|
|
294
|
+
`Table.data`) are now actually parsed, not copied through as raw
|
|
295
|
+
strings (TKT-0010).** Compiled dynamic props are a bare `$ref`
|
|
296
|
+
(`DynamicString`/`DynamicObjectList`/etc.) with no inline `type`, so
|
|
297
|
+
`CATALOG_PROPS`'s `pdef.type || 'string'` silently defaulted every
|
|
298
|
+
dynamic array prop to string extraction — a declarative
|
|
299
|
+
`data='[{...}]'` attribute's JSON text was copied through unparsed,
|
|
300
|
+
never `JSON.parse`d, so it could never satisfy the catalog's
|
|
301
|
+
array-shaped schema. Fixed by resolving `$ref` names to their
|
|
302
|
+
primitive kind (new `REF_TYPE_MAP`) and adding a `JSON.parse`-ing
|
|
303
|
+
array extraction branch (skipping silently on parse failure or a
|
|
304
|
+
non-array result, matching `chart.yaml`'s own documented "non-array
|
|
305
|
+
renders empty" contract). Root-caused via the corpus admission
|
|
306
|
+
validator surfacing the same `Chart`/`Table`.`data` `oneOf` failure
|
|
307
|
+
across 8+ unrelated chunks — a schema-generation/transpiler bug, not
|
|
308
|
+
independent content authoring mistakes. See `@adia-ai/a2ui-corpus`'s
|
|
309
|
+
CHANGELOG for the companion schema-side fix (`DynamicObjectList`).
|
|
310
|
+
|
|
311
|
+
## [0.7.27] — 2026-07-12
|
|
312
|
+
|
|
313
|
+
### Fixed
|
|
314
|
+
- **Transpiler — `[span]` is now universally preserved (TKT-0002).** `extractProps()` had a universal preserve for `[slot]` but not `[span]` — the same class of cross-cutting, layout-bearing attribute, consumed purely via `grid.css`'s `& > [span="N"]` child selectors and never declared in any component's own yaml `props:`. Every transpiled asymmetric grid collapsed to equal columns (the admin-dashboard's 3:2 Overview/Recent-Sales split was the operator-reported case). Regression tests cover `span="3"`, `span="full"`, and the absent case.
|
|
315
|
+
- **Transpiler — `Tag` is a leaf type; labels ride the `text` prop (TKT-0004 A).** `Tag` was missing from `LEAF_TYPES`, so `<tag-ui size="sm">label</tag-ui>` transpiled to `Tag > Text variant=body` — a full body-size paragraph inside the pill, inflating every converted chip (581 instances across 233 docs pages measured). Labels now ride tag.yaml's documented `attr(text)` contract, in both the pure-text and element-children extraction paths.
|
|
316
|
+
- **`strategies/zettel/issue-reporter.js` — issue storage repointed to `qa/findings/issues/`.** The previous path would have silently recreated the retired `.brain/` tree at runtime on the first `report_issue` call.
|
|
317
|
+
|
|
318
|
+
### Maintenance
|
|
319
|
+
- Transpiler test suite: `extract-props.test.js` 19 → 24 cases (span preservation ×3, Tag text contract ×2).
|
|
320
|
+
|
|
321
|
+
## [0.7.26] — 2026-07-04
|
|
322
|
+
|
|
323
|
+
### Fixed
|
|
324
|
+
- **Monolithic engine no longer teaches `variant="outline"` as the encoding for "secondary button."** `strategies/monolithic/_shared.js`'s hardcoded system-prompt text — sent to the LLM on every generation call — read `variant="primary" for main action, "outline" for secondary, "ghost" for tertiary`, actively instructing every generation to reach for `outline` on any non-primary button. `button-ui`'s unstyled default already renders the neutral/secondary look (see `@adia-ai/web-components` changelog); corrected the prompt text to say so explicitly and to leave `variant` unset for secondary/default actions, reserving `variant="primary"` for the one CTA that should stand out and `variant="ghost"` for genuinely lower-emphasis tertiary actions. Also fixed the same anti-pattern hardcoded into the file's fallback-error-UI generator — a "Copy Debug Info" button built with `variant: 'outline'` right next to a `variant: 'primary'` "Try Again" — dropped the attribute there too.
|
|
325
|
+
- Corpus evidence that motivated the investigation: of 446 `<button-ui>` tags across harvested demo-page chunks, only 30 were bare vs. 91 explicit `variant="outline"` + 215 `variant="ghost"` — confirming the prompt text (not incidental author habit) was the dominant driver.
|
|
326
|
+
|
|
327
|
+
## [0.7.25] — 2026-07-03
|
|
328
|
+
|
|
329
|
+
### Maintenance
|
|
330
|
+
- **Lockstep version bump.** No functional source changes; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.25 work shipped in accordion-ui variant="flat|contained" posture + 2 footnote fixes + keyboard a11y. See `packages/web-components/CHANGELOG.md#0725--2026-07-03` for details.
|
|
331
|
+
- **Doc-comment path references corrected** (`docs/specs/...` → `.claude/docs/specs/...`) across `strategies/` (`registry.js` + 5 `zettel/` files) — propagated from the repo-wide `docs/` → `.claude/docs/` migration (2026-07-01); no functional change.
|
|
332
|
+
|
|
333
|
+
## [0.7.24] — 2026-07-01
|
|
334
|
+
|
|
335
|
+
### Maintenance
|
|
336
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.24 work shipped in @adia-ai/web-components upstream consumer findings F1/F2/F4/F5/F6 — icon-ui fail-loud registry wiring, @phosphor-icons/core direct dep, custom-elements.json de-fabrication, new display-field-ui primitive, table-ui rowExpandable per-row gate. See `packages/web-components/CHANGELOG.md#0724--2026-07-01` for details.
|
|
337
|
+
|
|
338
|
+
## [0.7.23] — 2026-06-30
|
|
339
|
+
|
|
340
|
+
### Maintenance
|
|
341
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.23 work shipped in @adia-ai/web-components button-ui child-text label parity + accordion-ui block-flow gap. See `packages/web-components/CHANGELOG.md#0723--2026-06-30` for details.
|
|
342
|
+
|
|
343
|
+
## [0.7.22] — 2026-06-16
|
|
344
|
+
|
|
345
|
+
### Maintenance
|
|
346
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.22 work shipped in the @adia-ai/web-components + @adia-ai/web-modules surface-token alignment (symmetric canvas ramp). See `packages/web-components/CHANGELOG.md#0722--2026-06-16` for details.
|
|
347
|
+
|
|
348
|
+
## [0.7.21] — 2026-06-10
|
|
349
|
+
|
|
350
|
+
### Maintenance
|
|
351
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.21 work shipped in corpus harvester scope expansion (gated web-components examples root) + 26 curated chunks (368->394). See `packages/a2ui/corpus/CHANGELOG.md#0721--2026-06-10` for details.
|
|
352
|
+
|
|
353
|
+
## [0.7.20] — 2026-06-10
|
|
354
|
+
|
|
355
|
+
### Fixed
|
|
356
|
+
- **Corpus retrieval works on STATICALLY-served sites (no vite).** The browser corpus loaders (`strategies/zettel/composition-library.js`, `strategies/_shared/chunk-loader.js`) used `import.meta.glob` — a vite-only mechanism — so the corpus-first path silently loaded 0 chunks on the deployed static site and every intent fell through to the LLM. New **third runtime branch** (Node / vite-glob / **static-fetch**): one `_index.json` request carries the full scoring metadata; matched chunk bodies hydrate lazily. Detection = attempting the glob *call* in try/catch (`typeof import.meta.glob` is undefined in BOTH vite-dev and raw ESM — only the rewritten call discriminates). A parity guard in `generator-adapter` keeps static results identical to Node (template-less partials fall through instead of emitting empty surfaces). Verified: a plain static server with **no LLM** retrieves `contact-form-card` verbatim (4 labeled fields, 92/100, ~8 ms).
|
|
357
|
+
|
|
358
|
+
### Added
|
|
359
|
+
- **Anti-pattern fold-in for generated output** — `foldInAntiPatterns(messages, validation)` projects the flat component messages into an HTML sketch (via the runtime tag registry), runs the anti-pattern registry over it, and folds violations into the validation result (one warning each + a 10-point score dock). Wired into all monolithic generate paths (instant / thinking / pro — 5 call sites), so the canvas's validation badge now reflects anti-patterns: the incident's junk contact form scores 65 with 3 named violations instead of badging clean. Fails open — the fold-in can never break generation.
|
|
360
|
+
|
|
361
|
+
## [0.7.19] — 2026-06-10
|
|
362
|
+
|
|
363
|
+
### Maintenance
|
|
364
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.19 work shipped in icon-ui standalone-import paint fix + late-connect retry (web-components); full 308-chunk embedding vectors (a2ui-corpus). See `packages/web-components/CHANGELOG.md#0719--2026-06-10` for details.
|
|
365
|
+
|
|
366
|
+
## [0.7.18] — 2026-06-09
|
|
367
|
+
|
|
368
|
+
### Maintenance
|
|
369
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.18 work shipped in combobox menu-overflow fix + max-visible-items + the dropdown-family caret OPEN state + the theme-provider CDN bundle (web-components); corpus regrowth batch 1, +24 chunks (a2ui-corpus). See `packages/web-components/CHANGELOG.md#0718--2026-06-09` for details.
|
|
370
|
+
|
|
371
|
+
## [0.7.17] — 2026-06-08
|
|
372
|
+
|
|
373
|
+
### Maintenance
|
|
374
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.17 work shipped in badge-ui/tag-ui icon-spacing fix — icon-bearing chips no longer inflate row height + tighter [icon]-gated spacing. See `packages/web-components/CHANGELOG.md#0717--2026-06-08` for details.
|
|
375
|
+
|
|
376
|
+
## [0.7.16] — 2026-06-08
|
|
377
|
+
|
|
378
|
+
### Maintenance
|
|
379
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.16 work shipped in the dist CSS + JS bundle refresh. See `packages/web-components/CHANGELOG.md (0.7.16)` for details.
|
|
380
|
+
|
|
381
|
+
## [0.7.15] — 2026-06-08
|
|
382
|
+
|
|
383
|
+
### Maintenance
|
|
384
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.15 work shipped in the menu-label-ui new component + badge/tag padding. See `packages/web-components/CHANGELOG.md (0.7.15)` for details.
|
|
385
|
+
|
|
386
|
+
## [0.7.14] — 2026-06-08
|
|
387
|
+
|
|
388
|
+
### Maintenance
|
|
389
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.14 work shipped in input-ui/textarea-ui .value upgrade-safety fix. See `packages/web-components/CHANGELOG.md (0.7.14)` for details.
|
|
390
|
+
|
|
391
|
+
## [0.7.13] — 2026-06-06
|
|
392
|
+
|
|
393
|
+
### Maintenance
|
|
394
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.13 work: the `./css/sheet` exports `types` fix (`@adia-ai/web-components` + `@adia-ai/web-modules`) + a corpus re-harvest (`@adia-ai/a2ui-corpus`). See `packages/web-components/CHANGELOG.md` for details.
|
|
395
|
+
|
|
396
|
+
## [0.7.12] — 2026-06-04
|
|
397
|
+
|
|
398
|
+
### Changed
|
|
399
|
+
- **`data-theme` → `theme` in the monolithic compose strategy's LLM prompt** (`strategies/monolithic/_shared.js`) — the repo-wide token-attribute rename (see `@adia-ai/web-components`) reached the compose guidance, so generated UIs emit `theme="…"` not `data-theme="…"`. Otherwise a lockstep version bump (9-package coherence per `scripts/release/check-lockstep.mjs`).
|
|
400
|
+
|
|
401
|
+
## [0.7.11] — 2026-06-04
|
|
402
|
+
|
|
403
|
+
### Maintenance
|
|
404
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.11 work: the `<frame-ui>` slot-override regions + `button-ui` hover `-strong` step + `resizable` trait corner handles + `list-item-ui` / `<preview-ui>` fixes (`@adia-ai/web-components`), `<embed-shell>` extending `UIElement` to compose the `resizable` trait (`@adia-ai/web-modules`), and a corpus re-harvest. See `packages/web-components/CHANGELOG.md` for details.
|
|
405
|
+
|
|
406
|
+
## [0.7.10] — 2026-06-03
|
|
407
|
+
|
|
408
|
+
### Maintenance
|
|
409
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.10 work: the `<frame-ui>` layout primitive + `list-item-ui` grid fix + `[verse]` type-tier bump (`@adia-ai/web-components`), the new `<embed-shell>` (`@adia-ai/web-modules`), and a corpus re-harvest. See `packages/web-components/CHANGELOG.md` for details.
|
|
410
|
+
|
|
411
|
+
## [0.7.9] — 2026-06-03
|
|
412
|
+
|
|
413
|
+
### Maintenance
|
|
414
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.9 work shipped in Lockstep release — no package-specific source changes this cut; substantive v0.7.9 work in `@adia-ai/web-components` (verse control/chrome tier bump + semantic color cusp-lift) + root tooling (PLAN-claim trip-wire, slot-vocab + foundation-layer gate fixes).. See `packages/web-components/CHANGELOG.md#079--2026-06-03` for details.
|
|
415
|
+
|
|
416
|
+
## [0.7.8] — 2026-06-02
|
|
417
|
+
|
|
418
|
+
### Maintenance
|
|
419
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.8 work shipped in Lockstep release — no package-specific source changes this cut; substantive v0.7.8 work in `@adia-ai/web-components` (wrapper-trap arm-2 drain: 14 consumer-slot reads pierced via the new `core/logical-children.js` helper).. See `packages/web-components/CHANGELOG.md#078--2026-06-02` for details.
|
|
420
|
+
|
|
421
|
+
## [0.7.7] — 2026-06-02
|
|
422
|
+
|
|
423
|
+
### Maintenance
|
|
424
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.7 work shipped in Lockstep release — no package-specific source changes this cut; substantive v0.7.7 work in `@adia-ai/web-components` (drawer/verse register-aware insets + agent-artifact wrapper-pierce).. See `packages/web-components/CHANGELOG.md#077--2026-06-02` for details.
|
|
425
|
+
|
|
426
|
+
## [0.7.6] — 2026-06-02
|
|
427
|
+
|
|
428
|
+
### Maintenance
|
|
429
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.6 work shipped in Lockstep release — no package-specific source changes this cut; substantive v0.7.6 work in `@adia-ai/web-components` (block-ui, parametric [padding]/[margin] scale, host.css barrel split, FB-97/98 + command wrapper-trap fixes).. See `packages/web-components/CHANGELOG.md#076--2026-06-02` for details.
|
|
430
|
+
|
|
431
|
+
## [0.7.5] — 2026-06-02
|
|
432
|
+
|
|
433
|
+
### Maintenance
|
|
434
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.5 work shipped in Lockstep release — no package-specific source changes this cut; the substantive v0.7.5 fix is in `@adia-ai/web-components` (button-ui colored-variant: readable solid text + outline composes + excluded from the `[color]` text utility).. See `packages/web-components/CHANGELOG.md#075--2026-06-02` for details.
|
|
435
|
+
|
|
436
|
+
## [0.7.4] — 2026-06-02
|
|
437
|
+
|
|
438
|
+
### Maintenance
|
|
439
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.4 work shipped in Lockstep release — no package-specific source changes this cut; substantive work in `@adia-ai/web-components` + `@adia-ai/web-modules` (verse register, OD-5 `-default` revert, grid align/justify, font-family floor).. See `packages/web-components/CHANGELOG.md#074--2026-06-02` for details.
|
|
440
|
+
|
|
441
|
+
## [0.7.3] — 2026-06-01
|
|
442
|
+
|
|
443
|
+
### Maintenance
|
|
444
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.3 work shipped in @adia-ai/web-components parametric named gap scale (xs–xl) + explicit/ambient [gap] split (no leak) + FB-96 tree slot-adopt. See `packages/web-components/CHANGELOG.md#073--2026-06-01` for details.
|
|
445
|
+
|
|
446
|
+
## [0.7.2] — 2026-06-01
|
|
447
|
+
|
|
448
|
+
### Maintenance
|
|
449
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.2 work shipped in @adia-ai/web-components template-engine ARIA-transparent wrapper spans (FB-94) + menu-item orphan fix (FB-95) + tokens cascade-layer; @adia-ai/web-modules admin-page-footer sticky band (bug-54). See `packages/web-components/CHANGELOG.md#072--2026-06-01` for details.
|
|
450
|
+
|
|
451
|
+
## [0.7.1] — 2026-05-31
|
|
452
|
+
|
|
453
|
+
### Maintenance
|
|
454
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.1 work shipped in @adia-ai/web-components a11y/reactivity fixes — input-ui affordance centering (bug-60), tree-ui role=group WAI-ARIA (FB-91), menu-ui dynamic items (FB-92), input-ui reactive prefix/suffix (FB-93). See `packages/web-components/CHANGELOG.md#071--2026-05-31` for details.
|
|
455
|
+
|
|
456
|
+
## [0.7.0] — 2026-05-31
|
|
457
|
+
|
|
458
|
+
### Maintenance
|
|
459
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.0 work shipped in MINOR: @adia-ai/web-components BREAKING removals (avatar-ui [name] alias, chart-ui [aspect]/[heading]) + docs-QA pass (bug-21, bug-50..55) + new features (stat [bleed], page regions, kbd lg); @adia-ai/web-modules dialog/plan-picker/onboarding/integrations fixes. See `packages/web-components/CHANGELOG.md#070--2026-05-31` for details.
|
|
460
|
+
|
|
461
|
+
## [0.6.50] — 2026-05-30
|
|
462
|
+
|
|
463
|
+
### Maintenance
|
|
464
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.50 work shipped in @adia-ai/web-components slot="caret" disclosure convention + tree-item-ui adopt-or-stamp (FEEDBACK-89, ADR-0036); @adia-ai/a2ui-corpus catalog regen for the renamed slot vocabulary. See `packages/web-components/CHANGELOG.md#0650--2026-05-30` for details.
|
|
465
|
+
|
|
466
|
+
## [0.6.49] — 2026-05-30
|
|
467
|
+
|
|
468
|
+
### Maintenance
|
|
469
|
+
|
|
470
|
+
- **Lockstep version bump only.** Substantive v0.6.49 in `@adia-ai/web-components` (date-range-picker two-month fix + calendar `month` prop + card-ui demo slot sweep) and `@adia-ai/a2ui-corpus` (corpus + catalog regen). See those packages CHANGELOGs.
|
|
471
|
+
|
|
472
|
+
## [0.6.48] — 2026-05-29
|
|
473
|
+
|
|
474
|
+
### Maintenance
|
|
475
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.48 work shipped in foundation-styles dimension×layer reorg (ADR-0035) + library-wide demo consolidation + date-range-picker popover fix + corpus re-harvest. See `packages/web-components/CHANGELOG.md#0648--2026-05-29` for details.
|
|
476
|
+
|
|
477
|
+
## [0.6.47] — 2026-05-29
|
|
478
|
+
|
|
479
|
+
### Maintenance
|
|
480
|
+
|
|
481
|
+
- **Lockstep version bump only.** Substantive v0.6.47 in `@adia-ai/web-components` (`<card-ui>` `[grow]` section attribute) and `@adia-ai/a2ui-corpus` (chunk re-harvest). See those packages CHANGELOGs.
|
|
482
|
+
|
|
483
|
+
## [0.6.46] — 2026-05-29
|
|
484
|
+
|
|
485
|
+
### Maintenance
|
|
486
|
+
|
|
487
|
+
- **Lockstep version bump only.** Substantive v0.6.46 in `@adia-ai/web-components` (56 trait pages + slot docs + bleed/token fixes) and `@adia-ai/a2ui-corpus` (chunk re-harvest). See those packages CHANGELOGs.
|
|
488
|
+
|
|
489
|
+
## [0.6.45] — 2026-05-29
|
|
490
|
+
|
|
491
|
+
### Maintenance
|
|
492
|
+
|
|
493
|
+
- **Lockstep version bump only.** Substantive v0.6.45 in `@adia-ai/web-components` (FB-85 canvas-ui bare-specifier + FB-88 select-ui accessible name). See its CHANGELOG.
|
|
494
|
+
|
|
495
|
+
## [0.6.44] — 2026-05-28
|
|
496
|
+
|
|
497
|
+
### Fixed — transpiler emits `<select-ui>` options as a prop, not Text children (FEEDBACK-79)
|
|
498
|
+
|
|
499
|
+
- **`transpiler/transpiler-maps.js` + `transpiler/transpiler.js`** — `<select-ui>` / `<select>` (A2UI `ChoicePicker`) had no `<option>` handling: each `<option>` fell through the generic text-leaf path and became a `Text` child of the picker. Since `ChoicePicker` → `select-ui`, the renderer appended those as `<p>` / `<text-ui>` children, which `select-ui` rejects (`ignoring unrecognized child element` warning + empty options). `extractProps()` now builds the `options` model — `[{value, label, disabled?}]`, grouped `{label, options:[…]}` for `<optgroup>` — and mirrors `<option selected>` into `value` (comma-joined for `[multiple]`); `walkNode()` treats `ChoicePicker` as self-contained so options are never re-emitted as children. Matches `select.yaml`'s `options` contract. Affects every `<select-ui>`-bearing chunk, not just the 3 in the ticket. Re-harvest required (see `@adia-ai/a2ui-corpus`).
|
|
500
|
+
|
|
501
|
+
## [0.6.43] — 2026-05-27
|
|
502
|
+
|
|
503
|
+
### Fixed — Cycle-18 transpiler substrate sweeps (RL + RL2)
|
|
504
|
+
|
|
505
|
+
- **`transpiler/transpiler.js`** — two substrate sweeps from gen-review cycle-18:
|
|
506
|
+
- **Ralph Loop**: 6 visual bugs fixed at SoT — header slot grammar, leaf children, button slot preservation.
|
|
507
|
+
- **RL2**: 10 visual bugs across header slot, leaf children, calendar widget.
|
|
508
|
+
- **`transpiler/transpiler-maps.js`** — preserve `slot=` annotations through transpilation so card-ui transpiled `text-ui` chunks match the substrate CSS selector.
|
|
509
|
+
|
|
510
|
+
## [0.6.42] — 2026-05-26
|
|
511
|
+
|
|
512
|
+
### Maintenance
|
|
513
|
+
|
|
514
|
+
- **Lockstep version bump only.** Substantive v0.6.42: `@adia-ai/a2ui-corpus` (gen-review cycles 8-17 — chunk count 240 → 284, +44 new training chunks + chunk-embeddings regen 6.92 → 8.19 MB), `@adia-ai/web-components` (yaml/sidecar polish for description-list/table/upload + core/provider.js), `@adia-ai/web-modules` (admin-page-header yaml header-anatomy fix), `@adia-ai/a2ui-runtime` (registry.js + renderer.js polish). See those packages' CHANGELOGs.
|
|
515
|
+
|
|
516
|
+
## [0.6.41] — 2026-05-26
|
|
517
|
+
|
|
518
|
+
### Maintenance
|
|
519
|
+
|
|
520
|
+
- **Lockstep version bump only — pure ride-along.** No source changes in any of the 9 packages this cycle. Substantive v0.6.41 work is REPO-LEVEL: adia-ui-release skill v1.8.0 → v1.9.0 (catalog-drift recurring graduation — §Step 5.5 pre-commit trip-wire + supersedes-WT contract + §Step 5 allowlist convention; closes FEEDBACK-75). Version bump preserves 9-package lockstep coherence; published tarballs identical to v0.6.40 modulo version metadata.
|
|
521
|
+
|
|
522
|
+
## [0.6.40] — 2026-05-26
|
|
523
|
+
|
|
524
|
+
### Maintenance
|
|
525
|
+
|
|
526
|
+
- **Lockstep version bump only.** Substantive v0.6.40 in `@adia-ai/web-components` (index.js barrel side-effect-imports `core/provider.js` — cold-start `<router-ui>` registration, FB-69-class fix) and `@adia-ai/web-modules` (`<admin-entity-item>` `<span slot="icon">` wrap — mirrors `<nav-item-ui>`).
|
|
527
|
+
|
|
528
|
+
## [0.6.39] — 2026-05-26
|
|
529
|
+
|
|
530
|
+
### Maintenance
|
|
531
|
+
|
|
532
|
+
- **Lockstep version bump only.** Substantive v0.6.39 in `@adia-ai/web-components` (<tour-ui> primitive — Wave 5e last P1, #259 + substrate slot-selector defensive sweep + admin-entity-item icon-size parity + list-item-ui slot=action declaration). `@adia-ai/web-modules` ships dist rebuild only.
|
|
533
|
+
|
|
534
|
+
## [0.6.38] — 2026-05-26
|
|
535
|
+
|
|
536
|
+
### Maintenance
|
|
537
|
+
|
|
538
|
+
- **Lockstep version bump only.** No source changes in this package. Substantive v0.6.38: `@adia-ai/web-components` (Wave 5e — mark-ui + inline-edit-ui + feed-ui deep-link demo + list-item-ui/segmented-ui/stat-ui/toolbar-ui fixes + slot-vocab-vs-css backlog closure), `@adia-ai/web-modules` (catalog/ui-patterns import-mapping + saas/billing cancellation save-offer + onboarding-checklist demo), `@adia-ai/a2ui-corpus` (240 chunks + catalog regen for Wave 5e cohort).
|
|
539
|
+
|
|
540
|
+
## [0.6.37] — 2026-05-25
|
|
541
|
+
|
|
542
|
+
### Maintenance
|
|
543
|
+
|
|
544
|
+
- **Lockstep version bump only.** No source changes in this package. Substantive v0.6.37: `@adia-ai/web-components` (Wave 1+2+3+4 cohort — blockquote, slider dual-thumb, password-strength, qr-code, toc, relative-time, number-format, anchor-link, number-stepper, pagination, toast-undo, blockquote, table demos column-resize/sticky-header/virtualized, alert-dialog destructive-confirm, context-menu, visually-hidden, skip-nav + FB-67/68/69/70/71 close + popover-ui/pagination/slider/qr-code fixes + --a-warning-bg redirect + 5 new audits) and `@adia-ai/web-modules` (Wave 3+4 pattern demos + brand-chrome canonicals + integration-card/segmented console-warn silence).
|
|
545
|
+
|
|
546
|
+
## [0.6.36] — 2026-05-24
|
|
547
|
+
|
|
548
|
+
### Maintenance
|
|
549
|
+
|
|
550
|
+
- **Lockstep version bump only.** No source changes in this package. Substantive v0.6.36: `@adia-ai/web-components` (tag-ui solid-default flip + [tone] prop + dismiss X variant inheritance + tag.warning amber fix + caret-at-content-start fix for input/textarea/combobox/tags-input + post-v0.6.35 QA sweep), `@adia-ai/web-modules` (Wave A+B+C+D demos via authoring v1.8.0 Mode 8 + payment-method-form recursion guard + payment-method-list card-ui rewrite + billing-overview/dashboard-layout fixes), `@adia-ai/a2ui-corpus` (catalog regen for tag-ui solid-default flip).
|
|
551
|
+
|
|
552
|
+
## [0.6.35] — 2026-05-24
|
|
553
|
+
|
|
554
|
+
### Maintenance
|
|
555
|
+
|
|
556
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain 9-package coherence. Substantive v0.6.35: `@adia-ai/web-components` (Waves A+B+C — 14 P1 component implementations + FB-57/61/62/63 substrate sweep + class.js → <slug>.class.js refactor + spinner/calendar-grid fixes), `@adia-ai/web-modules` (FB-55 admin-shell warn + delegation refactor + Wave A+B+C cluster work), `@adia-ai/llm` (server.js SIGINT/SIGTERM handlers — dev-only fix), `@adia-ai/a2ui-corpus` (catalog regen absorbing FB-61/62/63 yaml backfills).
|
|
557
|
+
|
|
558
|
+
## [0.6.34] — 2026-05-23
|
|
559
|
+
|
|
560
|
+
### Maintenance
|
|
561
|
+
|
|
562
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain 9-package coherence. Substantive v0.6.34: `@adia-ai/web-components` (Wave 1 + Wave 2 — 10 P1 components shipped from SPECs + OD-5 `-default` token sweep across 98 components + `<calendar-grid-ui>` substrate primitive), `@adia-ai/web-modules` (Wave 1/2 cluster registrations + `everything.min.js` rebuild), `@adia-ai/a2ui-runtime` (Phase 1 CSS channel: `updateStyles`/`removeStyles`), `@adia-ai/a2ui-corpus` (`playground-css-channel` chunk + embeddings regen). See those packages' CHANGELOGs.
|
|
563
|
+
|
|
564
|
+
## [0.6.33] — 2026-05-23
|
|
565
|
+
|
|
566
|
+
### Maintenance
|
|
567
|
+
|
|
568
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.33 work shipped in `@adia-ai/web-components` (FB-53 §2 table[raw] short-circuit + FB-54 field row-gap :has gate + tabs --tabs-button-height anchor + dist icons-manifest header refresh) and `@adia-ai/web-modules` (FB-53 §1 CDN icons-manifest co-emit to web-modules/dist/) and `@adia-ai/a2ui-runtime` (card-ui body-slot drift fix). See those packages' CHANGELOGs for details.
|
|
569
|
+
|
|
570
|
+
## [0.6.31] — 2026-05-23
|
|
571
|
+
|
|
572
|
+
### Maintenance
|
|
573
|
+
|
|
574
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.31 work shipped in `@adia-ai/web-modules` (`admin-shell.examples` taming CSS + README canonical-hierarchy example) and `@adia-ai/web-components` (3 legacy `patterns/*` hubs rewritten). Docs-and-skills scrub — see those packages' CHANGELOGs for details.
|
|
575
|
+
|
|
576
|
+
## [0.6.30] — 2026-05-23
|
|
577
|
+
|
|
578
|
+
### Maintenance
|
|
579
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.30 work shipped in CDN-ready JS bundles (web-components.min.js primitives + 4 per-shell + everything.min.js kitchen-sink for CodePen); new ./js/bundled + ./everything + 4 */js-bundled exports; check:js-bundles-fresh pre-flight gate; README + site CDN docs + AI-agent discoverability; examples/codepen.html template. See `packages/web-components/CHANGELOG.md#0630--2026-05-23` for details.
|
|
580
|
+
|
|
581
|
+
## [0.6.29] — 2026-05-23
|
|
582
|
+
|
|
583
|
+
### Maintenance
|
|
584
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.29 work shipped in CDN-ready rolled-up CSS bundles (web-components + 4 web-modules shells); ./css/bundled + per-shell /bundled exports; check:css-bundles-fresh pre-flight gate. See `packages/web-components/CHANGELOG.md#0629--2026-05-23` for details.
|
|
585
|
+
|
|
586
|
+
## [0.6.28] — 2026-05-23
|
|
587
|
+
|
|
588
|
+
### Maintenance
|
|
589
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.28 work shipped in editor-sidebar rAF debounce for wide->narrow display-flip transient (FB-50, 3rd iteration of the latch saga; belt-and-braces with v0.6.26 width guard + v0.6.27 computedStyle guard). See `packages/web-modules/CHANGELOG.md#0628--2026-05-23` for details.
|
|
590
|
+
|
|
591
|
+
## [0.6.27] — 2026-05-22
|
|
592
|
+
|
|
593
|
+
### Maintenance
|
|
594
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.27 work shipped in chart-ui[loading] skeleton placeholder (FB-12); admin-shell CSS pitfall fix (FB-04); responsive horizontal-scroll for kanban + pricing tables; editor-sidebar computedStyle guard for small-nonzero transients (FB-49); a2ui-corpus catalog tracks chart-ui[loading]. See `packages/web-components/CHANGELOG.md#0627--2026-05-22` for details.
|
|
595
|
+
|
|
596
|
+
## [0.6.26] — 2026-05-22
|
|
597
|
+
|
|
598
|
+
### Maintenance
|
|
599
|
+
- **Lockstep version bump only.** No source changes. Substantive v0.6.26 work in `@adia-ai/web-modules`.
|
|
600
|
+
|
|
601
|
+
## [0.6.25] — 2026-05-22
|
|
602
|
+
|
|
603
|
+
### Maintenance
|
|
604
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.25 work shipped in select-ui[multiple] pre-init via <option selected> + .value= setter (FB-46); table-ui Enter key activates focused body cell (FB-47); corpus select-multiple-preselected exemplar chunk + harvest refresh. See `packages/web-components/CHANGELOG.md#0625--2026-05-22` for details.
|
|
605
|
+
|
|
606
|
+
## [0.6.24] — 2026-05-22
|
|
607
|
+
|
|
608
|
+
### Maintenance
|
|
609
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain 9-package version coherence. Substantive v0.6.24 work: `slider-ui` label/suffix reactive binding fix (FB-45), `editor-shell` `--a-font-mono` token rename (FB-43), `toast-ui` demo shell `feed.css` import. See `packages/web-components/CHANGELOG.md#0624` for details.
|
|
610
|
+
|
|
611
|
+
## [0.6.23] — 2026-05-22
|
|
612
|
+
|
|
613
|
+
### Maintenance
|
|
614
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.23 work shipped in row-ui wrap-at='bp' responsive flex-wrap (@adia-ai/web-components) + 4 new v053-coverage-fill training chunks for empty-state danger/warning/minimal + responsive-kpi-grid (@adia-ai/a2ui-corpus). See `packages/web-components/CHANGELOG.md#0623--2026-05-22` for details.
|
|
615
|
+
|
|
616
|
+
## [0.6.22] — 2026-05-22
|
|
617
|
+
|
|
618
|
+
### Maintenance
|
|
619
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.22 work shipped in @bp responsive attribute system (grid/col/row/text/block accept @bp), empty-state-ui variant=danger|warning, alert/segmented/stat/table truncation fixes, UI inset/gap scale reduction, 21 component example pages corrected; @adia-ai/web-modules admin-topbar/statusbar padding + admin-page-header/body breakpoint refinements. See `packages/web-components/CHANGELOG.md#0622--2026-05-22` for details.
|
|
620
|
+
|
|
621
|
+
## [0.6.21] — 2026-05-21
|
|
622
|
+
|
|
623
|
+
### Maintenance
|
|
624
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.21 work shipped in `@adia-ai/web-components` (`table-ui` truncate-by-default + `[wrap]` opt-in §403; toast / feed-item variant text colour; `input-ui` slot-label crowding fix) and `@adia-ai/web-modules` (`<admin-entity-item>` row-inset alignment; FEEDBACK-37 retraction — spurious slot-contract `console.warn` removed; page-header title row no longer stacks under `?chunks` dev overlay). See `packages/web-modules/CHANGELOG.md#0621--2026-05-21` for details.
|
|
625
|
+
|
|
626
|
+
## [0.6.20] — 2026-05-21
|
|
627
|
+
|
|
628
|
+
### Maintenance
|
|
629
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.20 work shipped in `@adia-ai/web-components` + `@adia-ai/web-modules` — the claims-ui-v5 inbound feedback batch (FEEDBACK-34…39: `table-ui` / `select-ui` / `chart-ui` fixes, the new `<admin-entity-item>` shell primitive, `admin-topbar` / `admin-statusbar` slot diagnostics) plus the `<admin-page-header>` `--a-canvas-0` rebase. See `packages/web-modules/CHANGELOG.md#0620--2026-05-21` for details.
|
|
630
|
+
|
|
631
|
+
## [0.6.19] — 2026-05-21
|
|
632
|
+
|
|
633
|
+
### Maintenance
|
|
634
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.19 work shipped in `@adia-ai/web-components` + `@adia-ai/web-modules` — the claims-ui-v4 inbound feedback batch (FEEDBACK-22…33: `drawer-ui` / `chart-ui` / `segmented-ui` fixes, `UIElement` lifecycle, exports-map `types` conditions) — plus an `@adia-ai/a2ui-corpus` drift remediation. See `packages/web-components/CHANGELOG.md#0619--2026-05-21` for details.
|
|
635
|
+
|
|
636
|
+
## [0.6.18] — 2026-05-21
|
|
637
|
+
|
|
638
|
+
### Maintenance
|
|
639
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.18 work shipped in `@adia-ai/web-components` — `stat-ui` + `table-ui` `loading` props (FB-12 P2) and `text-ui` `size` / `color` / `weight` / `text-align` overlay attributes (FB-10). See `packages/web-components/CHANGELOG.md#0618--2026-05-21` for details.
|
|
640
|
+
|
|
641
|
+
## [0.6.17] — 2026-05-21
|
|
642
|
+
|
|
643
|
+
### Maintenance
|
|
644
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.17 work shipped in `@adia-ai/web-modules` — collapsed-sidebar rules grew a forgiving fallback block for vanilla HTML consumers (`<button class="nav-item">`, `[slot="heading"]`) so text labels don't overflow the 48px rail. See `packages/web-modules/CHANGELOG.md#0617--2026-05-21` for details.
|
|
645
|
+
|
|
646
|
+
## [0.6.16] — 2026-05-21
|
|
647
|
+
|
|
648
|
+
### Maintenance
|
|
649
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.16 work shipped in `@adia-ai/web-modules`: (1) `<admin-page>` selector relaxed to descendant combinator so router-wrapped layouts no longer collapse to `display: inline` at narrow viewports (was the root of the page-header/KPI overlap regression); (2) `--page-content-header-bg` rebased from `--a-canvas-2` to `--a-canvas-1` so the page-header reads as shell-chrome continuation. See `packages/web-modules/CHANGELOG.md#0616--2026-05-21` for details.
|
|
650
|
+
|
|
651
|
+
## [0.6.15] — 2026-05-21
|
|
652
|
+
|
|
653
|
+
### Maintenance
|
|
654
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.15 work shipped in `@adia-ai/web-components` — `installIconLoaders` shape-detects malformed flat globs (FB-07 auto-promote + warn), `icons-phosphor.js` surfaces silent-fail diagnostics (FB-08), and .claude/docs/skill examples corrected (FB-09). See `packages/web-components/CHANGELOG.md#0615--2026-05-21` for details.
|
|
655
|
+
|
|
656
|
+
## [0.6.14] — 2026-05-21
|
|
657
|
+
|
|
658
|
+
### Maintenance
|
|
659
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.14 work shipped in `@adia-ai/web-modules` — `<admin-page-header>` now uses `var(--page-content-header-bg)` (= `--a-canvas-2`) + `var(--a-shadow-sm)` so the page-header band reads as elevated chrome over the body canvas. See `packages/web-modules/CHANGELOG.md#0614--2026-05-21` for details.
|
|
660
|
+
|
|
661
|
+
## [0.6.13] — 2026-05-20
|
|
662
|
+
|
|
663
|
+
### Maintenance
|
|
664
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.13 work shipped in `@adia-ai/web-modules` — `<admin-shell>` default `mode` is now `"rounded borderless"` (bare-tag auto-promote on connect; any explicit `mode` attribute still wins). See `packages/web-modules/CHANGELOG.md#0613--2026-05-20` for details.
|
|
665
|
+
|
|
666
|
+
## [0.6.12] — 2026-05-20
|
|
667
|
+
|
|
668
|
+
### Maintenance
|
|
669
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.12 work shipped in `@adia-ai/web-modules` — admin-shell legacy CSS bridges retired per ADR-0032 (continuation of ADR-0023 + ADR-0024). See `packages/web-modules/CHANGELOG.md#0612--2026-05-20` for the breaking-change details + migration path.
|
|
670
|
+
|
|
671
|
+
## [0.6.11] — 2026-05-20
|
|
672
|
+
|
|
673
|
+
### Maintenance
|
|
674
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.11 work shipped in `@adia-ai/web-components` (`<canvas-ui>` `.d.ts` hand-author covering 9 imperative runtime methods, claims-ui-v2 inbound FB-02 finding 2 closure) and `adia-ui-kit` skill v2.8.0 bundled feedback close (FB-01, FB-02 findings 1+3, FB-03; graduated `/with-css` opt-in docs + `ADIA_TICKETS_DIR` central-inbound workflow).
|
|
675
|
+
|
|
676
|
+
## [0.6.10] — 2026-05-21
|
|
677
|
+
|
|
678
|
+
### Maintenance
|
|
679
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.10 work shipped in `@adia-ai/web-modules` (4 shell `/with-css` opt-in companion subpaths, claims-ui FB-06 closure, ADR-0030) and `@adia-ai/web-components` (`<table-toolbar-ui>` unknown-attr `console.warn`, FB-04 enhancement; release-gate hygiene).
|
|
680
|
+
|
|
681
|
+
## [0.6.9] — 2026-05-21
|
|
682
|
+
|
|
683
|
+
### Maintenance
|
|
684
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.9 work shipped in `@adia-ai/web-components` (CSS `@scope` codemod, F-002) and `@adia-ai/web-modules` (cross-package subpath docs, FB-08).
|
|
685
|
+
|
|
686
|
+
## [0.6.8] — 2026-05-20
|
|
687
|
+
|
|
688
|
+
- Lockstep version bump. Headlining work in `@adia-ai/web-components`
|
|
689
|
+
(FB-55 `.camelCaseProp=${expr}` two-layer name resolution + FB-57
|
|
690
|
+
SVG/MathML namespace-aware `mount()` + USAGE.md docs cluster) and
|
|
691
|
+
`@adia-ai/web-modules` (claims-ui F-001 chat-shell.js barrel-import
|
|
692
|
+
fix + F-006 required-CSS callouts). No source changes in this package.
|
|
693
|
+
|
|
694
|
+
## [0.6.7] — 2026-05-19
|
|
695
|
+
|
|
696
|
+
- Lockstep version bump; no source changes.
|
|
697
|
+
|
|
698
|
+
## [0.6.6] — 2026-05-18
|
|
699
|
+
|
|
700
|
+
### Changed
|
|
701
|
+
- Lockstep version bump for §304 `<field-ui align>` prop.
|
|
702
|
+
## [0.6.5] — 2026-05-18
|
|
703
|
+
|
|
704
|
+
### Added
|
|
705
|
+
- `test/type-bugs.test.ts`: Phase 5 exit gate compile-only tests. Verifies
|
|
706
|
+
branded ID cross-contamination and A2UIMessage switch exhaustiveness as
|
|
707
|
+
compile errors (see ADR-0029 + migration plan §9.2).
|
|
708
|
+
|
|
709
|
+
### Changed
|
|
710
|
+
- `tsconfig.json`: include `../node-shims.d.ts` so node: imports in
|
|
711
|
+
transitively-included retrieval sources resolve under `tsc -p`.
|
|
712
|
+
Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
713
|
+
|
|
714
|
+
Scope: generation engines (monolithic + zettel), LLM adapters,
|
|
715
|
+
transpiler, evals. Retrieval + validation now ship as sibling
|
|
716
|
+
packages (`@adia-ai/a2ui-retrieval`, `@adia-ai/a2ui-validator`) so
|
|
717
|
+
non-compose consumers can depend on them without pulling the
|
|
718
|
+
generator graph.
|
|
719
|
+
## [0.6.32] — 2026-05-23
|
|
720
|
+
|
|
721
|
+
_No pending changes._
|
|
722
|
+
|
|
723
|
+
## [0.6.4] - 2026-05-18
|
|
724
|
+
|
|
725
|
+
### v0.6.4 — Lockstep ride-along
|
|
726
|
+
|
|
727
|
+
TS Phase 5: a2ui.schema.json schema-driven codegen (§359). No source changes in this package.
|
|
728
|
+
|
|
729
|
+
## [0.6.3] - 2026-05-18
|
|
730
|
+
|
|
731
|
+
### v0.6.3 — Phase 5 branded IDs
|
|
732
|
+
|
|
733
|
+
`strategies/zettel/types.ts` adds `FragmentId`, `ChunkId`, `CompositionId` branded types.
|
|
734
|
+
**No BREAKING changes.**
|
|
735
|
+
|
|
736
|
+
## [0.6.2] - 2026-05-18
|
|
737
|
+
|
|
738
|
+
### v0.6.2 — TS-MIG-001 closed
|
|
739
|
+
|
|
740
|
+
`skipLibCheck: true` override removed from `tsconfig.json`. Phase 4 retrieval +
|
|
741
|
+
mcp `.ts` sources provide real declarations. **No BREAKING changes.**
|
|
742
|
+
|
|
743
|
+
## [0.6.1] - 2026-05-18
|
|
744
|
+
|
|
745
|
+
### v0.6.1 §355 — TypeScript-first Phase 3: `@adia-ai/a2ui-compose` sources → `.ts`
|
|
746
|
+
|
|
747
|
+
All 29 npm-published `.js` sources gain `.ts` counterparts. `tsconfig.json` gains
|
|
748
|
+
TS-MIG-001 `skipLibCheck` until Phase 4 replaces stub declarations in sibling packages.
|
|
749
|
+
Emit deferred per migration plan §7.6 contingency. **No BREAKING changes.**
|
|
750
|
+
|
|
751
|
+
## [0.6.0] - 2026-05-18
|
|
752
|
+
|
|
753
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.6.0 — see root CHANGELOG)._
|
|
754
|
+
|
|
755
|
+
**MINOR-line internal-dep range update:** internal `@adia-ai/*` dependency ranges move from `^0.5.0` to `^0.6.0` per AdiaUI lockstep policy.
|
|
756
|
+
|
|
757
|
+
## [0.5.21] - 2026-05-18
|
|
758
|
+
|
|
759
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.21 — see root CHANGELOG)._
|
|
760
|
+
|
|
761
|
+
## [0.5.20] - 2026-05-18
|
|
762
|
+
|
|
763
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.20 — see root CHANGELOG)._
|
|
764
|
+
|
|
765
|
+
## [0.5.19] - 2026-05-17
|
|
766
|
+
|
|
767
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.19 — see root CHANGELOG)._
|
|
768
|
+
|
|
769
|
+
## [0.5.18] - 2026-05-16
|
|
770
|
+
|
|
771
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.18 — see root CHANGELOG)._
|
|
772
|
+
|
|
773
|
+
## [0.5.17] - 2026-05-16
|
|
774
|
+
|
|
775
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.17 — see root CHANGELOG)._
|
|
776
|
+
|
|
777
|
+
## [0.5.16] - 2026-05-16
|
|
778
|
+
|
|
779
|
+
### Changed
|
|
780
|
+
- §335 `core/generator.js` — removed dead `currentCanvas.html` references. The `hasClientCanvas` truth-check at line 71 ORed in `currentCanvas.html`, and a `// TODO(tier-2)` comment at line 134 referenced a never-implemented `htmlToComponents()` helper. Verified across `packages/` + `apps/` + `playgrounds/`: zero consumers pass `{ html: "..." }` to `generateUI()`. Also trimmed the speculative "Future:" block from the `currentCanvas` JSDoc (the `{ a2ui, originalIntent, meta }` shape was equally orphan). The shape union is now strictly `{ components } | { messages }`. Closes gemini-review refactor-backlog P2-2.
|
|
781
|
+
|
|
782
|
+
## [0.5.15] - 2026-05-16
|
|
783
|
+
|
|
784
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.15 — see root CHANGELOG)._
|
|
785
|
+
|
|
786
|
+
## [0.5.14] - 2026-05-15
|
|
787
|
+
|
|
788
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.14 — see root CHANGELOG)._
|
|
789
|
+
|
|
790
|
+
## [0.5.13] - 2026-05-15
|
|
791
|
+
|
|
792
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.13 — see root CHANGELOG)._
|
|
793
|
+
|
|
794
|
+
## [0.5.12] - 2026-05-15
|
|
795
|
+
|
|
796
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.12 — see root CHANGELOG)._
|
|
797
|
+
|
|
798
|
+
## [0.5.11] - 2026-05-15
|
|
799
|
+
|
|
800
|
+
_Lockstep ride-along (no source change)._
|
|
801
|
+
|
|
802
|
+
## [0.5.10] - 2026-05-15
|
|
803
|
+
|
|
804
|
+
_Lockstep ride-along (no source change)._
|
|
805
|
+
|
|
806
|
+
## [0.5.9] - 2026-05-15
|
|
807
|
+
|
|
808
|
+
_Lockstep ride-along (no source change)._
|
|
809
|
+
|
|
810
|
+
## [0.5.8] - 2026-05-15
|
|
811
|
+
|
|
812
|
+
_Lockstep ride-along (no source change)._
|
|
813
|
+
|
|
814
|
+
## [0.5.7] - 2026-05-15
|
|
815
|
+
|
|
816
|
+
### Changed — §210 cross-package sweep — `transpiler/`+`strategies/` text-variant retargeting (v0.5.7)
|
|
817
|
+
|
|
818
|
+
Companion to `@adia-ai/web-components@0.5.7` §210 (`<text-ui>` variant enum cleanup — removed 6 phantom entries `h1`-`h6` + `subheading`).
|
|
819
|
+
|
|
820
|
+
- `transpiler/transpiler-maps.js` — `HTML_TAG_MAP` retargets native `<h1>`-`<h6>` + `<summary>` from removed `h1`-`h6` variants to working role tokens (`display` / `title` / `heading` / `subsection`). Pre-§210 the mapping rendered silent body-default; post-§210 each level renders at its declared token size.
|
|
821
|
+
- `strategies/monolithic/_shared.js` — TEXT TYPES system-prompt block updated to enumerate the actual `<text-ui>` variant enum (display/title/heading/subsection/section for headings; body / caption / label / kicker / code / deck / metric for inline / meta / lede). Generator prompt now matches the runtime contract.
|
|
822
|
+
- `strategies/free-form-composer/free-form-composer.test.js` — fixture variant `'h1'` → `'display'` (test stub uses real variant).
|
|
823
|
+
|
|
824
|
+
## [0.5.6] - 2026-05-14
|
|
825
|
+
|
|
826
|
+
### Removed — §195 (v0.5.6) — retired fragment-graph iteration codepath
|
|
827
|
+
|
|
828
|
+
Deleted `packages/a2ui/compose/strategies/zettel/synthesizer.js`. The
|
|
829
|
+
file shipped the `synthesizeComposition` function as a throwing stub
|
|
830
|
+
since §37 (v0.4.7, 2026-05-12, fragment retirement). The dangling
|
|
831
|
+
caller in `generator-adapter.js` (iteration branch, turn ≥ 2 + LLM
|
|
832
|
+
present) caught the throw and auto-fired an `iteration-synthesis-failure`
|
|
833
|
+
issue ticket on every multi-turn refinement — surfaced as an auto-fired
|
|
834
|
+
bug at `.brain/audit-history/issues/2026-05-14-iteration-synthesis-failed-on-turn-3-for-4bfb.json`.
|
|
835
|
+
|
|
836
|
+
### Changed — §195 (v0.5.6) — weak-retrieval branch bridges to chunk-zettel
|
|
837
|
+
|
|
838
|
+
Replaced the `synthesizeComposition()` call in `generateZettel`'s
|
|
839
|
+
weak-retrieval-with-LLM branch with a bridge to
|
|
840
|
+
`chunk-synthesizer.js::composeFromIntent` (the §37 successor codepath).
|
|
841
|
+
Return shape is preserved (`messages`, `validation`, `strategy:
|
|
842
|
+
'composition-synthesized'`, `fragments_used: []`, `synthesized_template`,
|
|
843
|
+
`synthesis`). Fragment instances are no longer tracked on this path —
|
|
844
|
+
the chunk-bridge emits a single html-bearing component. Consumers that
|
|
845
|
+
need fragment-level resolution should wire via `engine: 'chunk-zettel'`
|
|
846
|
+
directly.
|
|
847
|
+
|
|
848
|
+
The `composition-iterated` strategy is retired — turn ≥ 2 on
|
|
849
|
+
`engine: 'zettel'` now takes the same path as turn 1. True
|
|
850
|
+
history-aware iteration lives in `chunk-refiner.js::refineFromIntent`
|
|
851
|
+
behind `engine: 'chunk-zettel'`.
|
|
852
|
+
|
|
853
|
+
### Added — §195 (v0.5.6) — smoke probe
|
|
854
|
+
|
|
855
|
+
NEW `scripts/smoke-iteration-synthesis.mjs` (npm run
|
|
856
|
+
`smoke:iteration-synthesis`) verifies the §195 invariants at three
|
|
857
|
+
layers: filesystem (`synthesizer.js` deleted), source
|
|
858
|
+
(`generator-adapter.js` has no surviving reference to the retired
|
|
859
|
+
identifiers), and runtime (4 sequential turns against the same
|
|
860
|
+
sessionId neither throw nor emit `composition-iterated`).
|
|
861
|
+
## [0.5.5] - 2026-05-14
|
|
862
|
+
|
|
863
|
+
### Changed — §179 (v0.5.5) — principled `deprecated:` yaml field
|
|
864
|
+
|
|
865
|
+
Three new yaml schema fields under each prop:
|
|
866
|
+
|
|
867
|
+
- **`deprecated`** (boolean, default `false`) — when `true`, the LLM prompt builder appends `(deprecated, do not use)` to the prop's line in CORPUS CONTEXT.
|
|
868
|
+
- **`deprecated_since`** (string) — version when deprecation was introduced.
|
|
869
|
+
- **`deprecated_reason`** (string) — human-readable migration guidance.
|
|
870
|
+
|
|
871
|
+
Build pipeline (`scripts/build/components.mjs::compileProp`) collects deprecation metadata and inlines onto the prop schema. Prompt builder (`packages/a2ui/compose/strategies/monolithic/_shared.js`) reads `v.deprecated === true` FIRST; falls back to `/deprecated/i.test(v.description)` (the v0.5.4 §167a substring detection) for back-compat. Existing §167a-tagged props continue to work without yaml changes.
|
|
872
|
+
|
|
873
|
+
Demonstrated on `Avatar.name`. Verified via `buildSystemPrompt`: `name:String[] (deprecated, do not use)` surfaces in CORPUS CONTEXT.
|
|
874
|
+
|
|
875
|
+
Commit `0379dd498`. See root CHANGELOG and journal §179 for full context.
|
|
876
|
+
## [0.5.4] - 2026-05-14
|
|
877
|
+
|
|
878
|
+
### Fixed — §163 transpiler prop-fidelity; catalog-driven extractor closes the harvester drop class (v0.5.4)
|
|
879
|
+
|
|
880
|
+
`packages/a2ui/compose/transpiler/transpiler-maps.js` rewritten to derive
|
|
881
|
+
the extractable-prop set from the v0.9 catalog at module init, replacing
|
|
882
|
+
the pre-§163 hand-maintained per-type allowlists that omitted `label`,
|
|
883
|
+
`icon`, literal `variant=`, and similar first-class props.
|
|
884
|
+
|
|
885
|
+
**Bug class diagnosed 2026-05-14** against composition `auth-signin-card-password`
|
|
886
|
+
rendering blank rectangles in the gen-ui canvas. Verified pre-§163 vs post-§163
|
|
887
|
+
against `apps/user-flow/app/auth/sign-in/password/password.contents.html`:
|
|
888
|
+
|
|
889
|
+
Password Input pre={} post={label,type,autocomplete,name,placeholder,required}
|
|
890
|
+
Remember check pre={name} post={name,label}
|
|
891
|
+
Sign in button pre={type} post={type,text,variant}
|
|
892
|
+
Divider pre={} post={label}
|
|
893
|
+
Magic-link btn pre={} post={icon,text,variant}
|
|
894
|
+
6-digit btn pre={} post={icon,text,variant}
|
|
895
|
+
|
|
896
|
+
**Implementation**: `CATALOG_PROPS` Map built at module init from
|
|
897
|
+
`@adia-ai/a2ui-corpus/catalog-a2ui_0_9.json`; `TYPE_ALIAS` map with
|
|
898
|
+
4 resolution passes (catalog-self-map + direct registry-match +
|
|
899
|
+
shared-tag-match + kebab-to-PascalCase fallback) — closes the
|
|
900
|
+
registry-vs-catalog name drift (registry has `CheckBox → check-ui`;
|
|
901
|
+
catalog uses `Check`). Generic catalog-driven pass runs FIRST in
|
|
902
|
+
`extractProps()`; legacy per-type blocks defer with `if (props.X === undefined)`
|
|
903
|
+
guards so catalog values win on conflict.
|
|
904
|
+
|
|
905
|
+
**Side-effect fixes**: pre-existing legacy quirks (Slider `'0'` → `'0'`
|
|
906
|
+
returning string instead of numeric `0`, Button `disabled="false"` → `true`)
|
|
907
|
+
incidentally fixed by the deferred-legacy pattern.
|
|
908
|
+
|
|
909
|
+
NEW `packages/a2ui/compose/transpiler/extract-props.test.js` (+228 LOC,
|
|
910
|
+
19 tests) pinning the regression class.
|
|
911
|
+
|
|
912
|
+
Cycle followup: §164 re-harvested all 230 chunks with the §163-fixed
|
|
913
|
+
transpiler (corpus package; +2920 LOC restored prop fidelity). §166a
|
|
914
|
+
added audit-script-family slot 12 (`check-extract-props-coverage.mjs`)
|
|
915
|
+
that re-verifies the catalog-vs-extractor invariant at every commit.
|
|
916
|
+
|
|
917
|
+
### Fixed — §168 canvas-iteration merge always-on; close the 50-threshold mismatch (v0.5.4)
|
|
918
|
+
|
|
919
|
+
`packages/a2ui/compose/strategies/monolithic/generate-pro.js:374` —
|
|
920
|
+
removed the `priorComponents.length >= 50` gate. `mergeCanvasDiff()`
|
|
921
|
+
now runs on every iteration turn regardless of canvas size.
|
|
922
|
+
|
|
923
|
+
Closes the chart-workflow regression diagnosed 2026-05-14:
|
|
924
|
+
32-component canvas + "add a chart" intent → 202-component response
|
|
925
|
+
wholesale-replaced the user's prior work (`exec_mp4zbj47_1`,
|
|
926
|
+
`comps= 202 score= 105`). Pre-§168 the 0–49 band had no merge gate
|
|
927
|
+
even though the prompt asked the LLM to return COMPLETE; LLM canvas
|
|
928
|
+
explosions wholesale-replaced. Now: `mergeCanvasDiff` runs always,
|
|
929
|
+
the hallucination-detection guards (matchRatio < 0.2 reject + < 0.6
|
|
930
|
+
accept-with-warning) discriminate by match ratio (more principled than
|
|
931
|
+
canvas-size heuristics), and small-canvas iterations correctly preserve
|
|
932
|
+
prior work when LLM speculatively expands.
|
|
933
|
+
|
|
934
|
+
`mergeCanvasDiff` is a strict superset of "wholesale-replace"
|
|
935
|
+
behaviorally: COMPLETE arrays merge to identical shape; DIFF arrays
|
|
936
|
+
process unchanged; hallucinated rewrites get rejected with
|
|
937
|
+
"Hallucinated replacement rejected" + canvas preservation.
|
|
938
|
+
|
|
939
|
+
NEW `merge-canvas-diff.test.js` (+251 LOC, 12 tests) pinning behavior
|
|
940
|
+
across all three bands (strict-superset-of-replace, hallucination
|
|
941
|
+
guards, DIFF format, layout-type guards, the §168 chart-workflow
|
|
942
|
+
regression fixture).
|
|
943
|
+
|
|
944
|
+
### Fixed — §169 iteration-prompt structural priming; Card/Stat/Chart anatomy carry-over (v0.5.4)
|
|
945
|
+
|
|
946
|
+
`packages/a2ui/compose/strategies/monolithic/_shared.js`
|
|
947
|
+
`buildCanvasDiffPrompt()` — added NEW `ITERATION_STRUCTURAL_RULES`
|
|
948
|
+
block injected into both the full-canvas + compact-summary branches.
|
|
949
|
+
|
|
950
|
+
Pre-§169 the iteration prompts said "Preserve slot attributes and
|
|
951
|
+
Card anatomy rules" without defining what those rules ARE. The
|
|
952
|
+
fresh-generation prompt at `buildSystemPrompt()` defines them
|
|
953
|
+
explicitly (Card > Header > [slot=heading...], Card > Section >
|
|
954
|
+
Column > [content], etc.) but iteration mode relied on multi-turn
|
|
955
|
+
context retention, which is unreliable.
|
|
956
|
+
|
|
957
|
+
Empirically the corpus enforces Card > Section > Column > Chart
|
|
958
|
+
(233 Section→Column + 95 Card→Section across 230 chunks). The
|
|
959
|
+
2026-05-14 user-reported "where chart data should live in the tree"
|
|
960
|
+
ticket was the LLM emitting Chart at the wrong depth during
|
|
961
|
+
iteration.
|
|
962
|
+
|
|
963
|
+
Token cost: ~150 tokens added to a 500-1500-token iteration prompt;
|
|
964
|
+
well within 32k max_tokens budget.
|
|
965
|
+
|
|
966
|
+
### Fixed — §167 surface yaml-declared deprecation to LLM via prompt builder (v0.5.4)
|
|
967
|
+
|
|
968
|
+
`packages/a2ui/compose/strategies/monolithic/_shared.js:274` (+ legacy
|
|
969
|
+
fallback at `:312`) — when building the per-component prop string,
|
|
970
|
+
append `(deprecated, do not use)` to any prop whose description
|
|
971
|
+
matches `/deprecated/i`.
|
|
972
|
+
|
|
973
|
+
Closes the `<avatar-ui name="...">` false-positive class observed
|
|
974
|
+
2026-05-14 console:
|
|
975
|
+
|
|
976
|
+
```
|
|
977
|
+
class.js:60 [AdiaUI] <avatar-ui name="…"> is deprecated — use text="…" instead.
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
Root cause: `avatar.yaml` + sidecar + catalog all declare
|
|
981
|
+
`Avatar.name` as a prop with description `"Deprecated alias for
|
|
982
|
+
text..."`. The prompt builder captured description into
|
|
983
|
+
`out.description` (line ~56) but never read it when assembling the
|
|
984
|
+
`props:` line. LLM saw both `name` and `text` as equally-valid prop
|
|
985
|
+
names and naturally picked `name` for "team member names" intents.
|
|
986
|
+
|
|
987
|
+
Post-§167 prompt:
|
|
988
|
+
```
|
|
989
|
+
- Avatar: ... props: icon:String, name:String (deprecated, do not use), ...
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
### Fixed — §172 ChatInput catalog entry + scanner sibling-yaml fix + intent-keyword family inclusion (v0.5.4)
|
|
993
|
+
|
|
994
|
+
Closes ticket `20260514045025-chatinput-training-data-unclea` —
|
|
995
|
+
user reported the generator created a redundant Button(primary)
|
|
996
|
+
sibling next to ChatInput, duplicating the built-in send button
|
|
997
|
+
that `<chat-input-ui>` already stamps.
|
|
998
|
+
|
|
999
|
+
**Three architectural layers fixed:**
|
|
1000
|
+
|
|
1001
|
+
1. **Build scanner sibling-yaml discovery** —
|
|
1002
|
+
`scripts/build/components.mjs` (+15 LOC). Pre-§172 the scanner
|
|
1003
|
+
only looked for `<name>/<name>.yaml`; sibling yamls in the same
|
|
1004
|
+
dir were invisible. `<chat-input-ui>` (sibling of chat-thread)
|
|
1005
|
+
and `<feed-item-ui>` (sibling of feed) were orphans —
|
|
1006
|
+
registered at runtime but invisible to the catalog. Post-§172
|
|
1007
|
+
sibling discovery is automatic.
|
|
1008
|
+
|
|
1009
|
+
2. **Retrieval catalog loader sibling-sidecar discovery** —
|
|
1010
|
+
`packages/a2ui/retrieval/component-catalog.js:_loadNode()`
|
|
1011
|
+
(+24 LOC). Same blind spot; same fix. Browser path already
|
|
1012
|
+
recursive via `import.meta.glob('**/*.a2ui.json')`; Node path
|
|
1013
|
+
now matches.
|
|
1014
|
+
|
|
1015
|
+
3. **Intent-keyword family inclusion in prompt builder** —
|
|
1016
|
+
`packages/a2ui/compose/strategies/monolithic/_shared.js`
|
|
1017
|
+
(+26 LOC). Pre-§172 the prompt's always-include list had generic
|
|
1018
|
+
primitives only; chat/table/form/chart/nav components only
|
|
1019
|
+
entered via retrieval-pattern match. Post-§172 the chat family
|
|
1020
|
+
(`ChatInput, ChatThread, ChatComposer, ChatShell, ChatHeader,
|
|
1021
|
+
ChatSidebar`) is force-included when the intent mentions
|
|
1022
|
+
`chat/message/conversation/composer/thread`. Same for the other
|
|
1023
|
+
4 families.
|
|
1024
|
+
|
|
1025
|
+
Together: ChatInput's full description, 3 a2ui rules, and 3
|
|
1026
|
+
anti-patterns (the "DO NOT add a separate Button sibling for send"
|
|
1027
|
+
guidance) now appear in every chat-intent prompt's CORPUS CONTEXT
|
|
1028
|
+
block.
|
|
1029
|
+
|
|
1030
|
+
**Sixth distinct application of the SoT-coherence pattern** in
|
|
1031
|
+
v0.5.4 (§163 + §167 + §168 + §169 + §170 + §172).
|
|
1032
|
+
|
|
1033
|
+
Commit `514e72697`.
|
|
1034
|
+
|
|
1035
|
+
### Maintenance — audit-script companions §173 + §175 ship in v0.5.4 (no source change to compose)
|
|
1036
|
+
|
|
1037
|
+
Repo-level audit scripts targeting compose drift classes:
|
|
1038
|
+
|
|
1039
|
+
- **§173 `check-iteration-prompt-coherence.mjs`** (slot 14) — guards against
|
|
1040
|
+
regressions in `monolithic/_shared.js` deprecation-marker logic (§167) +
|
|
1041
|
+
iteration-prompt structural rules block (§169).
|
|
1042
|
+
- **§175 `check-registry-catalog-coherence.mjs`** (slot 16) — guards against
|
|
1043
|
+
registry/catalog drift like §172 ChatInput orphan-component class.
|
|
1044
|
+
|
|
1045
|
+
No compose source change in §173/§175 — both detect future drift in compose's
|
|
1046
|
+
catalog-vs-prompt + registry-vs-catalog invariants.
|
|
1047
|
+
|
|
1048
|
+
### Changed — `version`: `0.5.3` → `0.5.4`.
|
|
1049
|
+
## [0.5.3] - 2026-05-14
|
|
1050
|
+
|
|
1051
|
+
### Fixed — Deterministic chunk-loading order in zettel composition library (§160, v0.5.3)
|
|
1052
|
+
|
|
1053
|
+
`strategies/zettel/composition-library.js`: `walk()` now sorts `fs.readdirSync` output via `localeCompare` before recursing. Pre-§160 the directory walker relied on filesystem-defined entry order, which varies across processes on APFS/ext4. When two chunks tied on retrieval score for a given intent, the first-loaded won the tie-break — so the same intent could match chunk A in one process and chunk B in the next.
|
|
1054
|
+
|
|
1055
|
+
Surfaced as ~40% flake rate on the `admin dashboard with kpi cards` retrieval probe post-§143 (the 8 new UI-primitive chunks compete with the original `dashboard-kpi-grid` template). Sorted walk pins load order; remaining flakiness is now constrained to a corpus-quality bug (Stat chunks strip `label`/`value`/`change` attrs in the `template` field) tracked as v0.5.4 F-S1a.
|
|
1056
|
+
|
|
1057
|
+
No behavior change for callers that don't hit a tie-break — most intents have a clear retrieval winner.
|
|
1058
|
+
|
|
1059
|
+
### Deprecated — `_debug.attempts` and `_debug.warnings` on free-form-composed results (§146, v0.5.3)
|
|
1060
|
+
|
|
1061
|
+
Finalizes the v0.6.0 deprecation schedule for the last two `_debug.*` fields that consumers might still read on `generateFreeFormAdapter`'s result. Both fields are dialog-recorder-gated (silently `undefined` when not recording) — the same access pattern §109 (v0.5.1) + §107a (v0.5.2) removed for `usedIngredients` / `rationale` / `plan`.
|
|
1062
|
+
|
|
1063
|
+
**v0.6.0 migration path** (folded into the inline `@deprecated` JSDoc on `strategies/registry.js`):
|
|
1064
|
+
|
|
1065
|
+
- `result._debug?.attempts` → `result.attempts: number` (LLM round-trips: 1 normally; 2-3 with hallucination retry or paraphrase-retry)
|
|
1066
|
+
- `result._debug?.warnings` → `result.warnings: string[]` (non-fatal transpile findings: unknown substitution keys, layout-value fall-throughs, chunk-resolution warns)
|
|
1067
|
+
|
|
1068
|
+
**Scheduled removal**: v0.6.0 drops the `_debug` block entirely from the free-form-composed result shape. The dialog-recorder will read first-class fields directly. v0.5.3 is the **migration window** — any external consumers reading `_debug.attempts` / `_debug.warnings` should switch to the first-class fields before v0.6.0 ships.
|
|
1069
|
+
|
|
1070
|
+
**Internal verification**: zero live in-repo consumers (`grep -rn '_debug\?\.attempts\|_debug\.attempts\|_debug\?\.warnings\|_debug\.warnings' apps/ playgrounds/ catalog/ packages/` returns only the deprecation comment itself).
|
|
1071
|
+
## [0.5.2] - 2026-05-13
|
|
1072
|
+
|
|
1073
|
+
### Changed — `plan` graduates from `_debug.*` to first-class on free-form-composed result (§107a infra, v0.5.2)
|
|
1074
|
+
|
|
1075
|
+
`strategies/registry.js` `generateFreeFormAdapter` returns `plan` as a top-level result field (paired with v0.5.1's §109 graduation of `usedIngredients` + `rationale`). The `_debug.plan` field is no longer populated — consumers should read `result.plan` directly. Soft-API change (`_debug` was always documented as volatile).
|
|
1076
|
+
|
|
1077
|
+
Enables substitution-coverage measurement at eval time without dialog-recorder coupling. Companion to `@adia-ai/a2ui-mcp` `--report-substitutions` flag.
|
|
1078
|
+
|
|
1079
|
+
### Deprecated — individual `_debug.*` field reads on free-form-composed results (§131, v0.5.2)
|
|
1080
|
+
|
|
1081
|
+
Documents the `_debug`-volatility contract that §109 (v0.5.1) + §107a (v0.5.2) established de-facto. The `_debug` block on `generateFreeFormAdapter`'s result is **dialog-recorder-gated** — populated only when `isRecording()` returns true; otherwise `undefined`. Individual field reads (`result._debug?.usedIngredients`, `result._debug?.rationale`, `result._debug?.plan`) were silently broken under that gating, which is why §109 + §107a graduated the consumer-relevant fields to first-class.
|
|
1082
|
+
|
|
1083
|
+
**Migration:** any consumer reading `result._debug?.<field>` for a field other than `systemPrompt` / `rawLLMResponse` / `tokens` / `attempts` / `warnings` should switch to the first-class field. The currently-stable first-class set: `usedIngredients`, `rationale`, `plan`.
|
|
1084
|
+
|
|
1085
|
+
**Scheduled removal:** v0.6.0 folds `attempts` + `warnings` into first-class result fields and drops the `_debug` block entirely from the free-form adapter's return value. The dialog-recorder will read first-class fields directly.
|
|
1086
|
+
|
|
1087
|
+
No live in-repo consumers of the soft-API path remain (verified `grep -rn '_debug?\.\|_debug\.' apps/ playgrounds/ catalog/` → 0 hits). One dead fallback in `@adia-ai/a2ui-mcp`'s `eval-diff.mjs` (`result.plan || result._debug?.plan || null`) removed in the same cut.
|
|
1088
|
+
|
|
1089
|
+
### Changed — Free-form system prompt: 5 per-shape substitution examples + self-check pattern (§126, v0.5.2)
|
|
1090
|
+
|
|
1091
|
+
`strategies/free-form-composer/system-prompt.js` constraint 3 extends the v0.5.1 §107b ALWAYS-substitute paragraph with 5 concrete examples (one per substitutable shape: Text/Kbd, Button, Badge/Tag, Icon, Image, Link) plus a self-check sentence at the end ("Before emitting, self-check: re-read the user's intent…").
|
|
1092
|
+
|
|
1093
|
+
Targets the v0.5.1 §107a finding that Haiku 4.5 underweights `ALWAYS`-style directives relative to Opus: example-density beats directive-strength for Haiku's prompt-following. Per-shape examples chosen to span the substitution-key namespace (Button:"text", Badge:"text", Icon:"name", Image:"alt", Link:"href") so the LLM sees the substitution-routing rules for each component type.
|
|
1094
|
+
|
|
1095
|
+
Cost: ~120 additional prompt tokens per call (~0.5% of total). Acceptable.
|
|
1096
|
+
|
|
1097
|
+
Expected impact: lifts substitution ratio 27.4% → ~35-40% (target ≥30%); F1 may lift incrementally as substituted text now matches user-intent vocabulary better. Paired with §125 (component-type structural sweep) — both target the F1 plateau from orthogonal angles.
|
|
1098
|
+
|
|
1099
|
+
### Changed — `generateFreeFormAdapter` accepts `ctx.model` override + reads `FREE_FORM_MODEL_OVERRIDE` env var (§127 infra, v0.5.2)
|
|
1100
|
+
|
|
1101
|
+
`strategies/registry.js` reads model priority chain at call-time (not module-load): `ctx.model` > `process.env.FREE_FORM_MODEL_OVERRIDE` > `FREE_FORM_MODEL_DEFAULT` (Haiku 4.5). Enables `eval-diff.mjs --model <id>` to run the Haiku-vs-Opus A/B for §127 without env-dance or static-import-ordering hazards. `FREE_FORM_MODEL` constant renamed to `FREE_FORM_MODEL_DEFAULT` to reflect the new priority chain.
|
|
1102
|
+
|
|
1103
|
+
Default behavior unchanged when no override set — the v0.5.1 §108 Haiku pin holds for every consumer that doesn't explicitly override.
|
|
1104
|
+
## [0.5.1] - 2026-05-13
|
|
1105
|
+
|
|
1106
|
+
### Added — Free-form composer INTENT-PARAPHRASE block + paraphrase-retry (§106, v0.5.1)
|
|
1107
|
+
|
|
1108
|
+
System prompt for `strategies/free-form-composer/` now includes an INTENT-PARAPHRASE block guiding the LLM to re-read keyword-mismatch intents in alternate phrasings before declaring `empty-plan`. On `empty-plan` emission, the strategy retries once with an explicit paraphrase instruction. Targets the 8 keyword-mismatch intents identified in §92's full-100 characterization (e.g. "show me the leaderboard" vs the corpus chunk's `leaderboard-table` keywords).
|
|
1109
|
+
|
|
1110
|
+
Targeted lift: closes 5-6 of the 8 keyword-mismatch failures from §104's 92% baseline. F1 on the remaining 2-3 is intent-shape-dependent; v0.5.2+ corpus regrowth handles those.
|
|
1111
|
+
|
|
1112
|
+
### Changed — Haiku 4.5 pinned for free-form ingredient picker (§108, v0.5.1)
|
|
1113
|
+
|
|
1114
|
+
`strategies/registry.js` `generateFreeFormAdapter` now mints a Haiku 4.5 adapter (`claude-haiku-4-5-20251001`) for the picker task instead of inheriting `ctx.llmAdapter`. Rationale: the picker task is "select N from 86 ingredients + emit strict JSON" — Haiku handles this well at ~5× cheaper + ~3× faster than Opus, freeing the Opus budget for `monolithic-pro` fall-throughs. User-decided pre-A/B per the v0.5.1 plan question 2.
|
|
1115
|
+
|
|
1116
|
+
Consumers passing `ctx.llmAdapter` keep getting their adapter via the mint-failure fallback path (no proxy / no key → falls back to `ctx.llmAdapter`).
|
|
1117
|
+
|
|
1118
|
+
### Changed — `usedIngredients` + `rationale` graduate from `_debug.*` to first-class (§109, v0.5.1)
|
|
1119
|
+
|
|
1120
|
+
`strategies/registry.js` `generateFreeFormAdapter` lifts `usedIngredients` + `rationale` out of the `_debug` block to top-level result fields. Auto-engine + factory-chat UI both depend on `usedIngredients` for trace labels; coupling visibility to dialog-recorder state was fragile (silently null when not recording). Soft-API addition — consumers reading `result.usedIngredients` get the array reliably; old `result._debug?.usedIngredients` access path becomes redundant but isn't removed (deprecation path lives in v0.5.x or v0.6.0).
|
|
1121
|
+
|
|
1122
|
+
### Coverage at v0.5.1 cut
|
|
1123
|
+
|
|
1124
|
+
Post-§106 prompt-tuning + §108 picker pin + §109 first-class graduation, free-form composer coverage measured at **~96-97%** on the 100-intent held-out set (up from §104's 92%). New AGENTS.md regression threshold floor: `cov≥96%, avg≥85, F1≥0.60` (§115 trip-wire baseline).
|
|
1125
|
+
## [0.5.0] - 2026-05-13
|
|
1126
|
+
|
|
1127
|
+
### Added — Free-form composer auto-grouping (§103, v0.5.0)
|
|
1128
|
+
|
|
1129
|
+
Free-form composer (`strategies/free-form-composer/`) now accepts an optional `layout: "column" | "row" | "grid"` field on the LLM's plan, picking the root container instead of always wrapping in `Column`. System prompt teaches the schema; `transpile.js` validates against a `VALID_LAYOUTS` set + falls through to `Column` with a warning on unknowns. Unit-tested across 6 cases (Column / Row / Grid root, lowercase normalization, unknown→fallback, omitted→default). Lifts F1 on the ~20 grid/row-shaped intents identified in §92's full-100 characterization — coverage stays put; the same plans now render with the right root primitive.
|
|
1130
|
+
|
|
1131
|
+
Plan-schema change is non-recursive — only the ROOT container choice. Nested-container composition (a Grid of Cards each containing a Row) deferred to v0.5.x+.
|
|
1132
|
+
|
|
1133
|
+
### Added — Free-form structural substitutions (§104, v0.5.0)
|
|
1134
|
+
|
|
1135
|
+
Extends `applyTextSubstitutions()` beyond `Text.textContent` to Button.text, Badge.text, Tag.text, Icon.name, Image.alt, Link.href, and Kbd.textContent — the seven primitive surfaces where a substitution-driven F1 lift is meaningful. The LLM's plan declares per-component substitutions with named target keys (e.g. `Button: { text: "Sign in" }`), and the transpiler routes each substitution to the correct prop on the matched primitive.
|
|
1136
|
+
|
|
1137
|
+
Schema validation rejects unknown target keys; downgrade warnings fire when a target-key doesn't match the matched ingredient's primitive (e.g. consumer asked for Icon.name but the matched ingredient is a Button — falls through to Button.text with a diagnostic so the eval harness can surface the miss).
|
|
1138
|
+
|
|
1139
|
+
### Coverage at v0.5.0 cut
|
|
1140
|
+
|
|
1141
|
+
After §93 (layout regrowth) + §94 (forms regrowth) + §103 (auto-grouping) + §104 (structural substitutions + v0.5.1 deferred regrowth fold-in), free-form composer coverage measured at **92% on the 100-intent held-out set** (up from 21% at §92 baseline). New AGENTS.md regression threshold floor: `cov≥80%, avg≥85, F1≥0.45` (§97 rebaseline).
|
|
1142
|
+
## [0.4.9] - 2026-05-13
|
|
1143
|
+
|
|
1144
|
+
_No pending changes._
|
|
1145
|
+
## [0.4.8] - 2026-05-12
|
|
1146
|
+
|
|
1147
|
+
### Fixed — `strategies/zettel/generator-adapter.js` `ensureBooted()` race (§87a, v0.4.8)
|
|
1148
|
+
|
|
1149
|
+
The zettel composition library's lazy boot had a race condition where concurrent `ensureBooted()` calls could each kick off a separate boot promise. Under contention (multiple requests landing simultaneously at server cold-start), the composition map could be partially populated when consumers reached the synchronous getters. Fix: memoize the boot promise on first call so all subsequent callers await the same promise. Pairs with the v0.4.8 §87 honest-floor eval threshold rebaseline — without the boot race fix, the 1% rebaseline was actually undercounting due to occasional empty-map reads.
|
|
1150
|
+
## [0.4.7] - 2026-05-12
|
|
1151
|
+
|
|
1152
|
+
### Changed — `strategies/monolithic/_shared.js` `getComponentCatalog()` reads canonical catalog (§72)
|
|
1153
|
+
|
|
1154
|
+
The legacy reader of `@adia-ai/a2ui-corpus/patterns/_components.json` has been migrated to read `@adia-ai/a2ui-corpus/catalog-a2ui_0_9.json` (the canonical v0.9 catalog, already the package root export). Per-component aliases are now lifted from `components[name].x-adiaui.synonyms.tags`. Same legacy output shape (`{ <Name>: { aliases: string[] } }`); zero behavior change for downstream callers.
|
|
1155
|
+
|
|
1156
|
+
Closes the §65 carry-over from v0.4.6 — `@adia-ai/a2ui-corpus` `patterns/` + `compositions/` are now deleted from disk + tarball.
|
|
1157
|
+
## [0.4.6] - 2026-05-12
|
|
1158
|
+
|
|
1159
|
+
### Changed — `core/` retirement follow-through (§64, v0.4.6)
|
|
1160
|
+
|
|
1161
|
+
Companion to `@adia-ai/a2ui-retrieval@0.4.6` retiring `pattern-library.js`:
|
|
1162
|
+
|
|
1163
|
+
- **`compose/core/pattern-export.js`** retired — no consumers post-§64 (the export shape targeted the retired pattern-library surface).
|
|
1164
|
+
- **`compose/core/reference.js`** — updated to delegate to `composition-library` instead of the retired `pattern-library`.
|
|
1165
|
+
- **`compose/core/generator.js`** — dropped pattern-export wiring; system-prompt path consumes compositions directly via §66's `adaptV09Component()`.
|
|
1166
|
+
|
|
1167
|
+
### Changed — `buildSystemPrompt` reads canonical `.a2ui.json` sidecars (§66, v0.4.6)
|
|
1168
|
+
|
|
1169
|
+
Closes the catalog-drift surface that §56 explicitly deferred ("different schema shapes; restructuring `getComponentCatalog()` is its own arc"). The monolithic prompt builder now reads from the v0.9 `.a2ui.json` sidecars (generated from yamls by `npm run components`) instead of the legacy hand-maintained `_components.json` catalog.
|
|
1170
|
+
|
|
1171
|
+
**Root cause uncovered during audit:** `strategies/monolithic/_shared.js` (pre-§66) called `getComponentData(typeName)` returning the raw v0.9 sidecar — `{title, description, properties, x-adiaui}` (JSON Schema shape) — but the prompt builder code did `a2uiData.props ? Object.entries(a2uiData.props)`. The v0.9 shape uses `properties`, not `props`. **Every prompt was silently falling through to the legacy `_components.json` catalog** because every v0.9 lookup looked empty. The "canonical sidecar reads" path was wired but dead code.
|
|
1172
|
+
|
|
1173
|
+
**Fix:** new `adaptV09Component()` helper at the top of `_shared.js` (~90 LOC) normalizes the v0.9 sidecar shape to the legacy `{tag, category, description, props, events, slots, examples, aliases, keywords}` shape the rest of the prompt builder was written for. Properties map 1:1 (skipping `component` discriminator + `children` container + `const`-only fields). Type names map JSON-Schema lowercase → legacy Title-Case (`string`→`String`, `boolean`→`Boolean`, etc.).
|
|
1174
|
+
|
|
1175
|
+
**Empirical fidelity gain** (Button as canonical primitive):
|
|
1176
|
+
|
|
1177
|
+
| Source | Props surfaced |
|
|
1178
|
+
|---|---|
|
|
1179
|
+
| `_components.json` (legacy, before §66) | 7: `text, variant, size, disabled, block, icon, type` (`block` is stale — removed from yaml in an earlier arc but never cleaned up in the hand-maintained catalog) |
|
|
1180
|
+
| v0.9 sidecar (canonical, after §66) | 10: `type, aria-label, color, disabled, icon, size, stretch, text, textContent, variant` |
|
|
1181
|
+
|
|
1182
|
+
**§66 surfaces ~30% more catalog data** for the LLM, all traceable to a yaml SoT that `npm run components` regenerates on demand. This is exactly the catalog drift §56 flagged: when the team added `Select.size` (§50) and `inputmode`/`autocomplete` (§51) to the yamls, those props went into the v0.9 sidecars but never propagated to `_components.json`. The LLM was getting a stale catalog view that excluded recent additions. After §66, the LLM gets the actual ground truth.
|
|
1183
|
+
|
|
1184
|
+
**Pitfalls encoded in the adapter** (5 v0.9-shape gotchas):
|
|
1185
|
+
1. `events` is an object `{eventName: {description}}`, not an array. Normalize to `string[]`.
|
|
1186
|
+
2. `slots` is also object-shaped. Same fix.
|
|
1187
|
+
3. `synonyms.tags` may be null/undefined. Wrap in `Array.isArray()` guard.
|
|
1188
|
+
4. `component` and `children` properties on every v0.9 sidecar are discriminator/container fields, not user-facing props. Skip in the adapter loop.
|
|
1189
|
+
5. `const` fields (e.g. `{const: 'Button'}`) are discriminator-only. Skip.
|
|
1190
|
+
|
|
1191
|
+
Source: `packages/a2ui/compose/strategies/monolithic/_shared.js` (+91, -2 lines, commit `afda98f5`).
|
|
1192
|
+
## [0.4.5] - 2026-05-12
|
|
1193
|
+
|
|
1194
|
+
### Changed — GenUI overhaul prompt-engineering (§56, v0.4.5)
|
|
1195
|
+
|
|
1196
|
+
- **`strategies/monolithic/_shared.js` — CORPUS CONTEXT block added to `buildSystemPrompt`** (~30 new lines between role/output-format and CARD-N content model). Surgical insertion explaining the §36-§51 retrieval-augmented pipeline:
|
|
1197
|
+
- Pipeline searches PATTERNS / COMPOSITIONS first (full-canvas A2UI templates: login-form, pricing-tiers, dashboard-admin-page)
|
|
1198
|
+
- Pipeline also searches ANNOTATED CHUNKS (real production HTML with `metadata.{domain, keywords, description}`)
|
|
1199
|
+
- When matched, `MATCHED PATTERN` / `STRUCTURAL REFERENCE` blocks carry the actual reference
|
|
1200
|
+
- Only AVAILABLE COMPONENTS are usable — anything else is a hallucination
|
|
1201
|
+
|
|
1202
|
+
Cost: ~150 tokens per request. Benefit: LLM understands what the pipeline around it IS instead of treating the matched-pattern block as anonymous instructions. Existing rules unchanged; no removed lines.
|
|
1203
|
+
|
|
1204
|
+
- **`strategies/monolithic/generate-pro.js` — STRUCTURAL REFERENCE prose enriched.** Prior copy: "a real production block from the codebase matched this intent." New copy: "this chunk was retrieved from the AdiaUI training corpus (annotated production HTML, harvested from real app pages). It matched your intent on keyword/domain ranking." Threads chunk `metadata.domain`, `metadata.description`, `metadata.keywords` into the prompt when present. Reframes "do not copy the HTML" as "the chunk represents the SHAPE the user wants; instantiate it with their content" — more actionable framing.
|
|
1205
|
+
|
|
1206
|
+
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the v0.4.5 overhaul arc + apps/genui/CHANGELOG.md `[Unreleased]` for the per-§ rollup.
|
|
1207
|
+
## [0.4.4] - 2026-05-12
|
|
1208
|
+
|
|
1209
|
+
### Changed
|
|
1210
|
+
|
|
1211
|
+
- **`strategies/zettel/fragment-library.js` → `composition-library.js` rename (§38).** Reflects the actual responsibility post-§37 (fragments retired; library now loads compositions + annotated chunks). API shape unchanged for callers; back-compat shims dropped after grep-verified zero external consumers.
|
|
1212
|
+
- **`strategies/zettel/composer.js` simplified (§37).** `resolveComposition` becomes a defensive copy + strip pass now that compositions are flat A2UI templates (no slot machinery). `templateToMessages` preserved for callers.
|
|
1213
|
+
- **`strategies/zettel/composition-library.js` — read annotated chunks alongside hand-authored compositions (§41).** `loadAll()` walks both `corpus/compositions/` (hand-authored) AND `corpus/chunks/` (annotated + transpiled). Chunks with a `metadata` field AND a `template` field get normalized to composition shape via `chunkToComposition()`. Name collisions: hand-authored wins with a loud warn. Boot reports `compositionCount=127, handAuthored=100, annotatedChunks=27` post-§50.
|
|
1214
|
+
- **`strategies/zettel/synthesizer.js` retired as throwing stub (§37).** Throws `SYNTHESIZER_RETIRED`; generator-adapter's try/catch handles it gracefully. Deferred follow-up: chunk-based synthesizer for zettel iteration.
|
|
1215
|
+
- **`compose/transpiler/transpiler-maps.js` — `<a>` → `Link` (was: `Button + variant=ghost`) (§47).** button.yaml line 60 explicitly documents `<link-ui>` is the canonical link primitive: *"Mixing navigation and action affordances under the same primitive is a category error fixed at this junction."* The transpiler had been making this category error since project inception. Added a Link-specific extractor block (parallels the Button extractor at line 154) that pulls `href` / `target` / `rel` from the source attrs.
|
|
1216
|
+
|
|
1217
|
+
### Fixed
|
|
1218
|
+
|
|
1219
|
+
- **`compose/strategies/monolithic/generate-pro.js` + companion `_shared/fragment-expander.js` — fragment machinery removed (§37).** Fragments retired; 85 compositions inlined with previously-referenced fragment content. Expander deleted; its caller's try/catch in `generator-adapter.js` handles the absence gracefully.
|
|
1220
|
+
- **MCP server `mcp/server.js` (§37).** Removed `get_fragment` tool, simplified `zettel_stats`, updated imports + boot logs + engine description to reflect the post-fragment world.
|
|
1221
|
+
|
|
1222
|
+
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 37 / 38 / 41 / 47 for per-§ details.
|
|
1223
|
+
## [0.4.3] - 2026-05-11
|
|
1224
|
+
|
|
1225
|
+
### Fixed
|
|
1226
|
+
|
|
1227
|
+
- **`process.env` browser-compat guard** — `core/generator.js` and `strategies/zettel/state-cache.js` were accessing `process.env` directly, which throws `ReferenceError: process is not defined` in browser execution paths (e.g. the gen-ui playground importing compose directly). Both sites now guard via `const IS_NODE = typeof process !== 'undefined' && process.versions?.node;` before reading `process.env`. The `A2UI_COMPOSE_TRACE` debug-trace and `STATE_CACHE_DIR` env-lookup paths are Node-only by design; the dynamic `node:fs/promises` + `node:path` imports also short-circuit when `IS_NODE` is false.
|
|
1228
|
+
|
|
1229
|
+
### Lockstep
|
|
1230
|
+
|
|
1231
|
+
9-package coordinated PATCH cut to v0.4.3 (per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy)). Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). Source change scoped to `core/generator.js` + `strategies/zettel/state-cache.js`. Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale + thousands grouping + hold-to-repeat). See root [CHANGELOG.md `## [0.4.3]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1232
|
+
## [0.4.2] - 2026-05-11
|
|
1233
|
+
|
|
1234
|
+
### Ride-along (no source changes)
|
|
1235
|
+
|
|
1236
|
+
Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.2` (`<input-ui type="number">` rewrite drops native `<input type=number>` wrapping) + `@adia-ai/web-modules@0.4.2` (`<editor-sidebar>` grid-track width-mirror fix). Source byte-identical to v0.4.1.
|
|
1237
|
+
|
|
1238
|
+
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.2]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1239
|
+
## [0.4.1] - 2026-05-10
|
|
1240
|
+
|
|
1241
|
+
### Ride-along (no source changes)
|
|
1242
|
+
|
|
1243
|
+
Lockstep PATCH cut alongside `@adia-ai/web-modules@0.4.1` (simple cluster) + `@adia-ai/a2ui-validator@0.4.1` (Phase 3 foundation) + `@adia-ai/a2ui-corpus@0.4.1` (fragment metrics reconciliation). Source byte-identical to v0.4.0.
|
|
1244
|
+
|
|
1245
|
+
Internal `@adia-ai/*` dep ranges bumped from `^0.4.0` to `^0.4.1`. See root [CHANGELOG.md `## [0.4.1]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1246
|
+
## [0.4.0] - 2026-05-10
|
|
1247
|
+
|
|
1248
|
+
### Ride-along (no source changes)
|
|
1249
|
+
|
|
1250
|
+
Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy shell shapes retired). Source byte-identical to v0.3.6.
|
|
1251
|
+
|
|
1252
|
+
Internal `@adia-ai/*` dep ranges bumped from `^0.3.0` to `^0.4.0`. See root [CHANGELOG.md `## [0.4.0]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1253
|
+
## [0.3.6] - 2026-05-10
|
|
1254
|
+
|
|
1255
|
+
### Ride-along (no source changes)
|
|
1256
|
+
|
|
1257
|
+
Lockstep version bump only — source byte-identical to v0.3.5. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.6]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1258
|
+
## [0.3.5] - 2026-05-07
|
|
1259
|
+
|
|
1260
|
+
### Ride-along (no source changes)
|
|
1261
|
+
|
|
1262
|
+
Lockstep version bump only — source byte-identical to v0.3.4. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.5]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1263
|
+
## [0.3.4] - 2026-05-07
|
|
1264
|
+
|
|
1265
|
+
### Ride-along (no source changes)
|
|
1266
|
+
|
|
1267
|
+
Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.4]`](../../../CHANGELOG.md) for the cut narrative.
|
|
1268
|
+
## [0.3.3] - 2026-05-07
|
|
1269
|
+
|
|
1270
|
+
**Lockstep cut.** All 9 published `@adia-ai/*` packages now share version `0.3.3`, governed by [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` ranges stay at `^0.3.0` (patch-cut asymmetry — caret floats `0.3.x`).
|
|
1271
|
+
|
|
1272
|
+
### Added
|
|
1273
|
+
|
|
1274
|
+
- **`iteration-synthesis-failure` auto-fire policy reason** in
|
|
1275
|
+
`strategies/zettel/issue-reporter.js`. Generator-adapter's
|
|
1276
|
+
iteration synthesis failures now route through
|
|
1277
|
+
`autoReport('iteration-synthesis-failure', ...)` instead of bare
|
|
1278
|
+
`console.error`. Suppressed in eval mode; emits to
|
|
1279
|
+
`.brain/audit-history/issues/` in production. (closes backlog #49)
|
|
1280
|
+
|
|
1281
|
+
- **`ID_PREFIX_SEPARATOR` exported constant** in
|
|
1282
|
+
`strategies/zettel/composer.js` — the magic string `'--'` used
|
|
1283
|
+
when prefixing fragment internal node ids with composition node
|
|
1284
|
+
id. Documented choice rationale (double-dash chosen because single
|
|
1285
|
+
`-` collides with kebab-case ids in primitives). (closes backlog #50)
|
|
1286
|
+
|
|
1287
|
+
- **`computeScopeDrift` + `SCOPE_DRIFT_RATIO` + `SCOPE_DRIFT_MIN_ACTUAL`
|
|
1288
|
+
exports** in `strategies/zettel/chunk-synthesizer.js`. Internal
|
|
1289
|
+
function + constants are now exported for testability. New
|
|
1290
|
+
`chunk-synthesizer.test.js` (8/8 pass) covers no-drift,
|
|
1291
|
+
ratio-below-gate, drift-fires, floor-prevents-false-positive,
|
|
1292
|
+
malformed-corpus zero-expected guard, multi-chunk aggregation,
|
|
1293
|
+
instances[]-shape support, exports. (closes backlog #52)
|
|
1294
|
+
|
|
1295
|
+
- **`A2UI_COMPOSE_TRACE` env-var support** in `core/generator.js`.
|
|
1296
|
+
When set to a directory path, writes a per-request JSON trace
|
|
1297
|
+
(full `_debug` payload + result) per `generateUI()` call, named
|
|
1298
|
+
`<ISO-timestamp>--<intent-slug>.json`. `dialog-recorder.isRecording()`
|
|
1299
|
+
honors the trace var so `_debug` payload is populated. New
|
|
1300
|
+
`npm run compose:trace` script. (closes backlog #89)
|
|
1301
|
+
|
|
1302
|
+
### Changed
|
|
1303
|
+
|
|
1304
|
+
- **Cache-invalidation contract** documented inline in
|
|
1305
|
+
`strategies/zettel/generator-adapter.js`. `loadAll()` itself is
|
|
1306
|
+
idempotent (`fragments.clear()` + `compositions.clear()` + re-walk
|
|
1307
|
+
on every call). The CACHING happens at the call-site:
|
|
1308
|
+
`ensureBooted()` sets a process-singleton flag and never reloads
|
|
1309
|
+
for the lifetime of the process. Trade-offs: good for long-running
|
|
1310
|
+
MCP, bad for tests/hot-reload. To force a reload, call `loadAll()`
|
|
1311
|
+
directly. (closes backlog #100)
|
|
1312
|
+
## [0.3.2] - 2026-05-06
|
|
1313
|
+
|
|
1314
|
+
**9-package lockstep patch cut to v0.3.2.** All lockstep members share
|
|
1315
|
+
one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
1316
|
+
Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
|
|
1317
|
+
|
|
1318
|
+
### Added
|
|
1319
|
+
|
|
1320
|
+
- **`chunk-zettel` engine** — registered as 5th built-in engine in
|
|
1321
|
+
`strategies/registry.js`. Chunk-aware composition from training-chunk
|
|
1322
|
+
corpus (page shells + block chunks). Fast path: sync keyword search
|
|
1323
|
+
over async embeddings to prevent ranking drift.
|
|
1324
|
+
|
|
1325
|
+
### Fixed
|
|
1326
|
+
|
|
1327
|
+
- **Keyword-first fast path** — `composeFromIntent` prefers sync
|
|
1328
|
+
`searchChunks` over `searchChunksAsync` (embeddings) for retrieval.
|
|
1329
|
+
- **Whole-word keyword matching** — `keywordScore()` splits chunk names
|
|
1330
|
+
on `[-_]` and uses `nameWords.includes(tok)`; prevents `"pane"` from
|
|
1331
|
+
matching `"panel"`.
|
|
1332
|
+
- **Coverage scoring** — PascalCase → kebab-case regex fix for
|
|
1333
|
+
multi-word components (`AgentTrace` → `agent-trace-ui`).
|
|
1334
|
+
|
|
1335
|
+
### Changed
|
|
1336
|
+
|
|
1337
|
+
- `version`: `0.3.1` → `0.3.2`.
|
|
1338
|
+
## [0.3.1] - 2026-05-06
|
|
1339
|
+
|
|
1340
|
+
**9-package lockstep patch cut.** All 9 published `@adia-ai/*` packages bump 0.3.0 → 0.3.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
|
|
1341
|
+
|
|
1342
|
+
This package itself ships **no source changes** in v0.3.1. The cut bumps version only — substantive content lives in [`@adia-ai/web-components`](https://github.com/adiahealth/gen-ui-kit/releases/tag/web-components-v0.3.1) (folder-per-trait restructure; barrel API unchanged).
|
|
1343
|
+
|
|
1344
|
+
### Changed
|
|
1345
|
+
|
|
1346
|
+
- `version`: `0.3.0` → `0.3.1`.
|
|
1347
|
+
- Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
|
|
1348
|
+
## [0.3.0] - 2026-05-05
|
|
1349
|
+
|
|
1350
|
+
**9-package lockstep cut + LLM subpath dropped.** All 9 published `@adia-ai/*` packages bump 0.2.5 → 0.3.0 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges bump `^0.2.0` → `^0.3.0`.
|
|
1351
|
+
|
|
1352
|
+
This is a **minor cut on top of v0.2.5 with one BREAKING change**: the `./llm` subpath export is removed. The LLM adapters that previously shipped under `@adia-ai/a2ui-compose/llm` now ship as their own package, `@adia-ai/llm` (9th lockstep member, first publish in this cut).
|
|
1353
|
+
|
|
1354
|
+
### Removed
|
|
1355
|
+
|
|
1356
|
+
- **`./llm` subpath export.** The package no longer re-exports the LLM
|
|
1357
|
+
adapters or bridge. Migrate to `@adia-ai/llm`:
|
|
1358
|
+
|
|
1359
|
+
```diff
|
|
1360
|
+
- import { streamChat } from '@adia-ai/a2ui-compose/llm/adapters/index.js';
|
|
1361
|
+
+ import { streamChat } from '@adia-ai/llm';
|
|
1362
|
+
|
|
1363
|
+
- import { createAdapter } from '@adia-ai/a2ui-compose/llm/llm-bridge.js';
|
|
1364
|
+
+ import { createAdapter } from '@adia-ai/llm/bridge';
|
|
1365
|
+
```
|
|
1366
|
+
|
|
1367
|
+
See `@adia-ai/llm@0.3.0` CHANGELOG for the full migration narrative.
|
|
1368
|
+
|
|
1369
|
+
### Changed
|
|
1370
|
+
|
|
1371
|
+
- `dependencies["@adia-ai/llm"]`: NEW, `^0.3.0`. The compose engines'
|
|
1372
|
+
internal LLM use now resolves through the new package.
|
|
1373
|
+
- `dependencies["@adia-ai/a2ui-utils"]` removed (renamed to `a2ui-runtime`); replaced by `dependencies["@adia-ai/a2ui-runtime"]: ^0.3.0`.
|
|
1374
|
+
- All other internal `@adia-ai/*` dep ranges: `^0.2.0` → `^0.3.0`.
|
|
1375
|
+
- `version`: `0.2.5` → `0.3.0`.
|
|
1376
|
+
- Source paths internal to compose that referenced `./llm/` updated to
|
|
1377
|
+
`../../../llm/` (e.g. `core/generator.js` imports `StubLLMAdapter`
|
|
1378
|
+
from the new package location).
|
|
1379
|
+
- `transpiler/transpiler-maps.js`: `@adia-ai/a2ui-utils` import → `@adia-ai/a2ui-runtime` (matches the package rename — see runtime's CHANGELOG).
|
|
1380
|
+
|
|
1381
|
+
### Migration
|
|
1382
|
+
|
|
1383
|
+
```diff
|
|
1384
|
+
{
|
|
1385
|
+
"dependencies": {
|
|
1386
|
+
"@adia-ai/a2ui-compose": "^0.3.0",
|
|
1387
|
+
+ "@adia-ai/llm": "^0.3.0"
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
```
|
|
1391
|
+
|
|
1392
|
+
Plus rewrite imports as shown above. The change is mechanical.
|
|
1393
|
+
## [0.2.5] - 2026-05-04
|
|
1394
|
+
|
|
1395
|
+
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.4 → 0.2.5 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.5 under semver — patch-cut asymmetry).
|
|
1396
|
+
|
|
1397
|
+
This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive content lives in `web-components` (new `<fields-ui>` form-grid primitive + `draggable-list-item` last-item drop-zone fix, both surfaced by the Tasks UI Playground at `.claude/docs/projects/tasks-playground/`); `a2ui-corpus` ships a catalog regen for the new `<fields-ui>` yaml. `a2ui-compose` rides along at version bump only — no source change.
|
|
1398
|
+
|
|
1399
|
+
### Changed
|
|
1400
|
+
|
|
1401
|
+
- `version`: `0.2.4` → `0.2.5`.
|
|
1402
|
+
- Internal `@adia-ai/*` dep ranges: unchanged at `^0.2.0` (covers `0.2.5` under semver — patch-cut asymmetry).
|
|
1403
|
+
## [0.2.4] - 2026-05-04
|
|
1404
|
+
|
|
1405
|
+
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.3 → 0.2.4 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.4 under semver — patch-cut asymmetry).
|
|
1406
|
+
|
|
1407
|
+
This is a **patch cut on top of v0.2.3, no BREAKING changes.** Substantive content lives in `web-components` (Tier 4 trait library lift, 11 new traits + 2 architectural rewrites, plus accumulated bug fixes); `a2ui-corpus` ships a catalog regen for the new `<demo-toggle-ui>` primitive. Six packages ride along at version + dep-range bump.
|
|
1408
|
+
|
|
1409
|
+
### Changed
|
|
1410
|
+
|
|
1411
|
+
- `version`: `0.2.3` → `0.2.4`.
|
|
1412
|
+
- `dependencies["@adia-ai/a2ui-utils"]`: `^0.2.0` (covers `0.2.4`).
|
|
1413
|
+
|
|
1414
|
+
This package's source tree is byte-identical to 0.2.3. The cut bumps version + the internal dep range only, per the lockstep policy.
|
|
1415
|
+
|
|
1416
|
+
_Nothing yet._
|
|
1417
|
+
|
|
1418
|
+
---
|
|
1419
|
+
|
|
1420
|
+
---
|
|
1421
|
+
## [0.2.3] - 2026-05-04
|
|
1422
|
+
|
|
1423
|
+
**Lockstep cut.** All 8 published `@adia-ai/*` packages bump
|
|
1424
|
+
0.2.2 → 0.2.3 per
|
|
1425
|
+
[`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
1426
|
+
Patch cut — no breaking changes.
|
|
1427
|
+
|
|
1428
|
+
### Changed
|
|
1429
|
+
|
|
1430
|
+
- `version`: `0.2.2` → `0.2.3`.
|
|
1431
|
+
- `dependencies["@adia-ai/a2ui-corpus"]`: `^0.2.0` (covers `0.2.3`).
|
|
1432
|
+
- `dependencies["@adia-ai/a2ui-retrieval"]`: `^0.2.0` (covers `0.2.3`).
|
|
1433
|
+
- `dependencies["@adia-ai/a2ui-validator"]`: `^0.2.0` (covers `0.2.3`).
|
|
1434
|
+
|
|
1435
|
+
### No source changes
|
|
1436
|
+
|
|
1437
|
+
`@adia-ai/a2ui-compose` source is byte-identical to `0.2.2`. The cut bumps version + the internal dep range entries only.
|
|
1438
|
+
## [0.2.2] - 2026-05-02
|
|
1439
|
+
|
|
1440
|
+
**Lockstep cut + reasoning-panel emission fixes.** All 8 published `@adia-ai/*` packages bump 0.2.1 → 0.2.2 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
|
|
1441
|
+
|
|
1442
|
+
### Changed
|
|
1443
|
+
|
|
1444
|
+
- `version`: `0.2.1` → `0.2.2`.
|
|
1445
|
+
- `dependencies["@adia-ai/a2ui-corpus"]`: `^0.2.0` (covers `0.2.2`).
|
|
1446
|
+
- `dependencies["@adia-ai/a2ui-utils"]`: `^0.2.0` (covers `0.2.2`).
|
|
1447
|
+
- `dependencies["@adia-ai/a2ui-validator"]`: `^0.2.0` (covers `0.2.2`).
|
|
1448
|
+
- `dependencies["@adia-ai/a2ui-retrieval"]`: `^0.2.0` (covers `0.2.2`).
|
|
1449
|
+
- `core/generator.js` and `strategies/` are the surfaces that gained the new behavior below; no other compose directories touched.
|
|
1450
|
+
|
|
1451
|
+
### Fixed — Reasoning-panel emissions surface confidence + retrieval candidates (2026-05-02)
|
|
1452
|
+
|
|
1453
|
+
`generator.js` was emitting `status` events whose labels looked truthful but hid the data needed to judge their reliability. Two fixes that surface the missing data as `outcomes`:
|
|
1454
|
+
|
|
1455
|
+
- **Interpret stage** now includes the domain confidence percentage and the matched signals. Previously `Domain: data` read identical at 3% confidence vs 95% — same label. Now: `Domain: data (3% confidence)` plus `Matched signals: pricing` as outcomes. Per memory `feedback_panel_label_reliability.md`.
|
|
1456
|
+
- **Analyze stage** runs a fast keyword `searchBlocks(intent)` and emits the top-5 candidates with scores + domains. Previously the stage reported `context.patterns.length` from `getContext(intent, 2)` — but the context-assembler only populates `result.patterns` at tier ≥ 3, so the count was structurally guaranteed to be 0. The label read "nothing relevant" when it actually meant "we didn't even look here." The fix runs a real retrieval at the analyze stage instead of relying on the wrong-tier context.
|
|
1457
|
+
|
|
1458
|
+
Companion fix in `@adia-ai/a2ui-retrieval` Unreleased (web-research.js EXPLICIT/IMPLICIT pattern split). Both surfaces feed the same reasoning-panel deception class — five distinct bugs caught + fixed in commit `9986c71e`.
|
|
1459
|
+
|
|
1460
|
+
---
|
|
1461
|
+
## [0.2.1] - 2026-05-02
|
|
1462
|
+
|
|
1463
|
+
**Lockstep cut + scope-drift gate at composer time + skeleton harvest + Tier-1 block filter + high-resolution session ticket trace.** All 8 published `@adia-ai/*` packages bump 0.2.0 → 0.2.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
|
|
1464
|
+
|
|
1465
|
+
### Changed
|
|
1466
|
+
|
|
1467
|
+
- `version`: `0.2.0` → `0.2.1`.
|
|
1468
|
+
- `dependencies["@adia-ai/a2ui-corpus"]`: `^0.2.0` (covers `0.2.1`).
|
|
1469
|
+
- `dependencies["@adia-ai/a2ui-utils"]`: `^0.2.0` (covers `0.2.1`).
|
|
1470
|
+
- `dependencies["@adia-ai/a2ui-validator"]`: `^0.2.0` (covers `0.2.1`).
|
|
1471
|
+
- `dependencies["@adia-ai/a2ui-retrieval"]`: `^0.2.0` (covers `0.2.1`).
|
|
1472
|
+
- `strategies/zettel/chunk-synthesizer.js` and `strategies/zettel/issue-reporter.js` are the surfaces that gained the new behavior below; no other directories under `strategies/` were touched.
|
|
1473
|
+
|
|
1474
|
+
### Added — Scope-drift gate at composer time (2026-05-02)
|
|
1475
|
+
|
|
1476
|
+
`composeFromIntent` now computes a scope-drift signal after every successful composition: composed-HTML component count vs. the sum of bound chunks' component counts. When `actual / expected > 1.5×` (with a 20-component floor to suppress small-UI noise), the synthesizer emits a warning with the ratio. The MCP layer auto-fires a `scope-drift` issue on detection, which writes both a JSON ticket and a high-resolution Markdown ticket showing the bound-chunk envelope, ratio, and a callout naming the canvas-drift regression class.
|
|
1477
|
+
|
|
1478
|
+
- `chunk-synthesizer.js`: `computeScopeDrift(html, boundChunks)`, `SCOPE_DRIFT_RATIO = 1.5`, `SCOPE_DRIFT_MIN_ACTUAL = 20`. Tier-1 (single bound block) and Tier-2 (page chunk + every block resolved into a slot) both instrumented.
|
|
1479
|
+
- `issue-reporter.js`: new `'scope-drift'` reason in `AUTO_FIRE_POLICY` (type `bug`, severity `drift`, owner `synthesis`); `scopeDrift` flowed into the trace; ticket renderer extended with envelope + ratio + drift callout.
|
|
1480
|
+
|
|
1481
|
+
Closes the loop on the canvas-drift regression class — the §37 fix patched the immediate symptom (84 components for a 4-stat retrieval), this trip-wire makes the class self-detecting.
|
|
1482
|
+
|
|
1483
|
+
### Added — Skeleton harvest + Tier-1 block filter (2026-05-02)
|
|
1484
|
+
|
|
1485
|
+
Two coordinated changes to the chunk-corpus pipeline that bound the synthesizer's output envelope.
|
|
1486
|
+
|
|
1487
|
+
- **Skeleton harvest for nested chunks.** `harvest-chunks.mjs` now collapses each nested `data-chunk` element's inner content to `<!-- nested: <name> -->`, so page/panel chunks become compact skeletons. `dashboard-admin-page` shrank from 26,555c → 1,522c (-94%); `dashboard-overview-panel` from 12,493c → 898c (-93%); xl-bucket chunks (>10K chars) went from 2 → 0.
|
|
1488
|
+
- **Tier-1 retrieval `kind: 'block'` filter.** `composeFromIntent` restricts the fast-path retrieval to block-kind chunks; page/panel composition still works via Tier-2 LLM synthesis with slot-binding, where the skeleton is the right input.
|
|
1489
|
+
|
|
1490
|
+
End-to-end: "trace documentation UI with stat cards" now produces 4 components (was 84). "kpi dashboard with stat cards" → 13 components. The retrieved chunk's component count is now an upper bound on the Tier-1 fast-path output.
|
|
1491
|
+
|
|
1492
|
+
### Added — High-resolution session ticket trace (2026-05-02)
|
|
1493
|
+
|
|
1494
|
+
The synthesizer now captures a `retrievalTrace` per attempt: Tier-1 hits with scores + kinds, Tier-2 catalog summary (page/panel/block counts, top-N block candidates), user-prompt char count, system-prompt hash, attempt-by-attempt LLM raw responses, validation results, plan, and HTML preview. The state cache stores it on every entry. `attachTrace('full')` (now the default when `state_id` is provided) returns the full session-replay payload.
|
|
1495
|
+
|
|
1496
|
+
`issue-reporter.js` renders this as a sibling Markdown ticket alongside the JSON; sections cover header, description, reproduction, component count, retrieval log table, LLM attempts (raw responses), user prompt, composer plan, generated HTML preview, warnings, ops history, environment. A maintainer can replay any flagged session from the ticket alone.
|
|
1497
|
+
|
|
1498
|
+
---
|
|
1499
|
+
## [0.2.0] - 2026-05-02
|
|
1500
|
+
|
|
1501
|
+
**Lockstep cut + boundary cleanup.** All 8 published `@adia-ai/*`
|
|
1502
|
+
packages now share one version, governed by
|
|
1503
|
+
[`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
1504
|
+
This release also lands the `engine/` ↔ `engines/` collision fix from
|
|
1505
|
+
T3 of the
|
|
1506
|
+
`.claude/docs/plans/packages-architecture-fixes-2026-05-02.md`
|
|
1507
|
+
plan.
|
|
1508
|
+
|
|
1509
|
+
### Changed
|
|
1510
|
+
|
|
1511
|
+
- `version`: `0.1.0` → `0.2.0`.
|
|
1512
|
+
- `dependencies["@adia-ai/a2ui-utils"]`: `^0.0.2` → `^0.2.0`.
|
|
1513
|
+
- `dependencies["@adia-ai/a2ui-retrieval"]`: `^0.0.1` → `^0.2.0`.
|
|
1514
|
+
- `dependencies["@adia-ai/a2ui-validator"]`: `^0.0.1` → `^0.2.0`.
|
|
1515
|
+
|
|
1516
|
+
- **Directory renames — `engine/` → `core/`, `engines/` → `strategies/`**
|
|
1517
|
+
to remove the singular/plural collision that read as a typo. The
|
|
1518
|
+
orchestrator (`generator.js`, `state.js`, `context-store.js`,
|
|
1519
|
+
`artifacts.js`, `pattern-export.js`, `reference.js`, `pipeline/`) now
|
|
1520
|
+
lives at `core/`; the pluggable strategies (`monolithic/`, `zettel/`,
|
|
1521
|
+
`registry.js`) live at `strategies/`. The `transpiler/` directory's
|
|
1522
|
+
internal imports were also rewritten by the same sweep (no behavior
|
|
1523
|
+
change). All internal imports updated in one sweep.
|
|
1524
|
+
- **`constitution.md` moved out of the package source** to
|
|
1525
|
+
[`.claude/docs/specs/compose-constitution.md`](../../../.claude/docs/specs/compose-constitution.md)
|
|
1526
|
+
so it doesn't ship in the published tarball. Pointer added in
|
|
1527
|
+
README.
|
|
1528
|
+
- **`package.json` `exports` map updated** with new keys (`./core`,
|
|
1529
|
+
`./strategies/registry`, `./strategies/zettel`); old keys
|
|
1530
|
+
(`./engine`, `./engines/registry`, `./engines/zettel`) retained as
|
|
1531
|
+
aliases for one release cycle and removed in the next major.
|
|
1532
|
+
- Spec [`.claude/docs/specs/package-architecture.md`](../../../.claude/docs/specs/package-architecture.md)
|
|
1533
|
+
bumped 0.5.0 → 0.6.0 with the directory tree updated to reflect the
|
|
1534
|
+
new layout; new § 15 documents the lockstep versioning policy.
|
|
1535
|
+
|
|
1536
|
+
### Migration
|
|
1537
|
+
|
|
1538
|
+
Consumers importing from the old paths still work for one release
|
|
1539
|
+
cycle, but should update on next touch:
|
|
1540
|
+
|
|
1541
|
+
```diff
|
|
1542
|
+
- import { generateUI } from '@adia-ai/a2ui-compose/engine';
|
|
1543
|
+
+ import { generateUI } from '@adia-ai/a2ui-compose/core';
|
|
1544
|
+
|
|
1545
|
+
- import { pick, registerEngine } from '@adia-ai/a2ui-compose/engines/registry';
|
|
1546
|
+
+ import { pick, registerEngine } from '@adia-ai/a2ui-compose/strategies/registry';
|
|
1547
|
+
|
|
1548
|
+
- import { generateZettel } from '@adia-ai/a2ui-compose/engines/zettel';
|
|
1549
|
+
+ import { generateZettel } from '@adia-ai/a2ui-compose/strategies/zettel';
|
|
1550
|
+
```
|
|
1551
|
+
|
|
1552
|
+
---
|
|
1553
|
+
## [0.1.0] - 2026-04-28
|
|
1554
|
+
|
|
1555
|
+
**Multi-turn refinement engine (Phase A).** Adds three new modules to the
|
|
1556
|
+
zettel engine that turn `compose_from_chunks` from single-shot into a
|
|
1557
|
+
multi-turn surface, plus a first-class telemetry surface that auto-fires
|
|
1558
|
+
issue tickets on engine failure paths.
|
|
1559
|
+
|
|
1560
|
+
Spec: [`.claude/docs/specs/genui-multiturn-architecture.md`](../../../.claude/docs/specs/genui-multiturn-architecture.md) (Active v0.1.0).
|
|
1561
|
+
Plan: `.claude/docs/plans/genui-multiturn-rollout-2026-04-28.md` (Phase A scoped).
|
|
1562
|
+
ADR: `0008-multiturn-genui-architecture.md`.
|
|
1563
|
+
|
|
1564
|
+
### Added (engine modules)
|
|
1565
|
+
|
|
1566
|
+
- **`engines/zettel/state-cache.js`** — bounded LRU cache for multi-turn
|
|
1567
|
+
compositions (default 64 entries; configurable via
|
|
1568
|
+
`A2UI_STATE_CACHE_SIZE`). API: `set / get / peek / has / evict / list /
|
|
1569
|
+
size / clear`. State-id minting helpers `mintStateId(intent, version)`
|
|
1570
|
+
and `mintNextStateId(parent, version)` produce stems of the form
|
|
1571
|
+
`<intent-prefix>-<rand4>-v<N>-<unix-min>` so refinement chains keep a
|
|
1572
|
+
visible lineage. Module-level singleton via `getStateCache() /
|
|
1573
|
+
resetStateCache()`. Pure data structure; no I/O, no async.
|
|
1574
|
+
- **`engines/zettel/issue-reporter.js`** — first-class telemetry surface.
|
|
1575
|
+
`reportIssue(input, ctx)` writes immutable JSON to
|
|
1576
|
+
`.brain/audit-history/issues/<issue_id>.json` (matches the existing
|
|
1577
|
+
audit-ledger convention). `autoReport(reason, autoCtx, ctx)` looks up
|
|
1578
|
+
a 6-row policy table for engine-side auto-fires (`synthesizer-exhausted`,
|
|
1579
|
+
`validator-exhausted`, `locator-empty-targets`,
|
|
1580
|
+
`retrieval-zero-then-synthesis-fail`, `cache-miss-on-known-state`,
|
|
1581
|
+
`ops-failed-after-apply`) and threads severity / type / suggested-owner
|
|
1582
|
+
defaults. `attachTrace(state_id, depth, cache)` pulls from the
|
|
1583
|
+
state-cache via `peek` (no recency disturbance). Sidecar trace files
|
|
1584
|
+
for traces > 200 KB. Three reporter kinds: `auto | user | llm`.
|
|
1585
|
+
`evalMode: true` in ctx suppresses auto-fire (manual `reportIssue`
|
|
1586
|
+
calls still write). Per-tool-call `IssueAccumulator` coalesces
|
|
1587
|
+
multiple auto-fires into a single issue with the highest-severity
|
|
1588
|
+
policy as primary; reasons listed in body + tags.
|
|
1589
|
+
- **`engines/zettel/chunk-refiner.js`** — sibling to `chunk-synthesizer.js`.
|
|
1590
|
+
Two-pass synthesis (locator → modifier) for refinement intents.
|
|
1591
|
+
`refineFromIntent({ priorState, intent, llmAdapter, maxAttempts,
|
|
1592
|
+
issueAccumulator, catalog })` runs a locator pass to identify which
|
|
1593
|
+
slots to modify, then a modifier pass to emit chunk-plan ops on the
|
|
1594
|
+
targeted slice. Validator-driven retry loop with feedback-on-error
|
|
1595
|
+
(default `maxAttempts: 2`, mirrors `chunk-synthesizer`). `validateOps`
|
|
1596
|
+
checks op shape, slot references, chunk references, page-kind
|
|
1597
|
+
contracts. `applyOps({ priorState, ops })` mutates a deep-cloned
|
|
1598
|
+
plan and re-materializes HTML via `composeFromPlan`. `opsToA2UI(ops,
|
|
1599
|
+
newState)` translates chunk-plan ops to wire-format `updateComponents`
|
|
1600
|
+
A2UI messages (Phase A simplification: `components[].html` carries
|
|
1601
|
+
the materialized payload; Phase B will upgrade to component-tree shape).
|
|
1602
|
+
|
|
1603
|
+
### Phase A op format
|
|
1604
|
+
|
|
1605
|
+
Internal: `rebindSlot | appendToSlot | removeFromSlot | replacePage`.
|
|
1606
|
+
Wire: standard `updateComponents` messages targeting `slot-<name>` ids
|
|
1607
|
+
(or `main` for `replacePage`). Documented as a Phase A simplification —
|
|
1608
|
+
the chunk pipeline emits HTML, so the wire-format wrapper is intentionally
|
|
1609
|
+
thin until Phase B introduces typed component-tree refinements.
|
|
1610
|
+
|
|
1611
|
+
### Smoke + eval
|
|
1612
|
+
|
|
1613
|
+
- `npm run smoke:state-cache` — 34/34 (LRU recency, peek, env-driven sizing,
|
|
1614
|
+
state-id minting + chain).
|
|
1615
|
+
- `npm run smoke:issues` — 62/62 (write, validation, trace attach, sidecar
|
|
1616
|
+
spill, auto-fire policy lookup, evalMode suppression, coalescing).
|
|
1617
|
+
- `npm run smoke:refine` — 51/51 (validateOps, applyOps × 4 op types,
|
|
1618
|
+
opsToA2UI, two-pass with stub LLM, retries, exhaustion auto-fire,
|
|
1619
|
+
end-to-end refine → apply → wire).
|
|
1620
|
+
- **`npm run eval:refine-synthesis`** — **15/15 PASS** real-LLM eval.
|
|
1621
|
+
Ops rate 100%, validate rate 100%, 0 auto-fires, 67 s. All 15
|
|
1622
|
+
refinements completed on the first attempt.
|
|
1623
|
+
|
|
1624
|
+
### Out of scope (Phase B / C)
|
|
1625
|
+
|
|
1626
|
+
- Persistent state across server restarts (filesystem-JSON-backed cache at `.brain/state-cache/`; mirrors the existing audit-ledger convention; design in plan §2).
|
|
1627
|
+
- Branching / version trees.
|
|
1628
|
+
- LLM-streamed op emission.
|
|
1629
|
+
- Multi-user concurrent refinement (CRDT / OT).
|
|
1630
|
+
- A2UI `updateDataModel` + `wireComponents` synthesis (current scope is
|
|
1631
|
+
`updateComponents` + `deleteSurface` only).
|
|
1632
|
+
|
|
1633
|
+
### Migration
|
|
1634
|
+
|
|
1635
|
+
Additive surface; no breaking changes. Existing consumers calling
|
|
1636
|
+
`composeFromIntent` continue to work unchanged.
|
|
1637
|
+
|
|
1638
|
+
---
|
|
1639
|
+
## [0.0.1] - 2026-04-24
|
|
1640
|
+
|
|
1641
|
+
First public release. Framework-agnostic compose engine for the
|
|
1642
|
+
A2UI protocol: takes natural-language intents + a catalog and
|
|
1643
|
+
produces A2UI protocol messages. Two generation strategies ship
|
|
1644
|
+
behind a plug-in engine registry.
|
|
1645
|
+
|
|
1646
|
+
### Included
|
|
1647
|
+
|
|
1648
|
+
- **Monolithic engine** (`engine/generator.js`) — single-call
|
|
1649
|
+
generator with `instant` / `pro` / `thinking` modes. Anthropic
|
|
1650
|
+
and OpenAI LLM adapters included. Pattern-match-only `instant`
|
|
1651
|
+
mode for deterministic output; `pro` + `thinking` call the LLM.
|
|
1652
|
+
- **Zettel engine** (`engines/zettel/`) — fragment-graph composition
|
|
1653
|
+
strategy that assembles UI from reusable fragments + compositions
|
|
1654
|
+
via a backlink graph. Framework-agnostic; driven by the same
|
|
1655
|
+
intent-gate + domain-router as monolithic.
|
|
1656
|
+
- **Engine registry** (`engines/registry.js`) — plug-in API.
|
|
1657
|
+
`registerEngine(name, fn)` + `pick(name)` dispatcher;
|
|
1658
|
+
reserved names for built-ins.
|
|
1659
|
+
- **LLM bridge** (`llm/llm-bridge.js`) — unified interface over
|
|
1660
|
+
Anthropic, OpenAI, and Gemini adapters. Streaming + non-streaming
|
|
1661
|
+
calls; prompt-cache support for Anthropic.
|
|
1662
|
+
- **Transpiler** (`transpiler/transpiler.js`) — A2UI JSON → HTML
|
|
1663
|
+
rendering; used by MCP tools and the visual-validate pipeline.
|
|
1664
|
+
- **Evals harness** (`evals/harness.mjs`) — V2 cross-engine eval
|
|
1665
|
+
runner. Consumed by `eval-diff.mjs` in `@adia-ai/a2ui-mcp`.
|
|
1666
|
+
- **Index barrel** (`index.js`) — re-exports `generateUI`,
|
|
1667
|
+
`generateUIStream`, `pick`, `listEngines`, `registerEngine`,
|
|
1668
|
+
`unregisterEngine`, `ENGINES` for one-import consumer surface.
|
|
1669
|
+
|
|
1670
|
+
### Dependencies
|
|
1671
|
+
|
|
1672
|
+
- `@adia-ai/a2ui-utils` ^0.0.2 — A2UI runtime primitives.
|
|
1673
|
+
- `@adia-ai/a2ui-retrieval` ^0.0.1 — retrieval layer.
|
|
1674
|
+
- `@adia-ai/a2ui-validator` ^0.0.1 — validation layer.
|
|
1675
|
+
|
|
1676
|
+
---
|
|
1677
|
+
|
|
1678
|
+
## Pre-0.0.1 history
|
|
1679
|
+
|
|
1680
|
+
### Changed
|
|
1681
|
+
- **A2UI runtime dependency relocated.** `retrieval/catalog.js`,
|
|
1682
|
+
`transpiler/transpiler-maps.js`, and `validation/validator.js` now
|
|
1683
|
+
import `registry` and `wiringRegistry` from the new published package
|
|
1684
|
+
`@adia-ai/a2ui-utils` instead of `../../web-components/a2ui/`
|
|
1685
|
+
(which no longer exists — the runtime moved out of web-components in
|
|
1686
|
+
`@adia-ai/web-components@0.0.4`). The scoped import is resolved via
|
|
1687
|
+
the workspace symlink in dev and the transitive dependency in
|
|
1688
|
+
published installs.
|
|
1689
|
+
- `retrieval/anti-patterns.js` — `noInventedComponents` regex broadened from `/<([a-z]+-n)\b/` to `/<([a-z]+-(?:n|ui))\b/` so the check actually fires against the current `-ui` codebase. Allowlist aligned with canonical registry.
|
|
1690
|
+
- `transpiler/transpiler.js` and `transpiler/transpiler-maps.js` — stale `-n` tag references updated to `-ui` forms consistent with `packages/web-components/a2ui/registry.js`.
|
|
1691
|
+
- `retrieval/catalog.js`, `retrieval/synthetic-data.js`, `engines/monolithic/_shared.js` — internal tag references audited and aligned with the canonical registry.
|
|
1692
|
+
|
|
1693
|
+
### Fixed
|
|
1694
|
+
- Stale internal-identifier references in comments + doc strings swept to the current naming.
|
|
1695
|
+
|
|
1696
|
+
---
|
|
1697
|
+
## [0.1.0] — internal baseline (unreleased)
|
|
1698
|
+
|
|
1699
|
+
Initial version at the time the monorepo was established. Contains:
|
|
1700
|
+
|
|
1701
|
+
- **Monolithic engine** — single-call generator with instant / pro / thinking modes (Anthropic, OpenAI adapters).
|
|
1702
|
+
- **Zettel engine** — fragment-graph composition engine using leverage-ranked fragments from the training corpus.
|
|
1703
|
+
- **Retrieval layer** — keyword + concept-tag + component-signature scoring. Dialog recorder writes per-turn JSON to `logs/dialogs/`.
|
|
1704
|
+
- **Validator** — 15-check weighted schema validator; rejects `_fallback: true` surfaces as score 0.
|
|
1705
|
+
- **Prompt caching** — enabled on Anthropic calls as of 2026-04-19.
|
|
1706
|
+
|
|
1707
|
+
Package name still uses the legacy `@adia-ai/a2ui-compose` scope pending rename (see root CHANGELOG for context).
|