@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.
Files changed (631) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +77 -0
  3. package/compose/CHANGELOG.md +1707 -0
  4. package/compose/README.md +215 -0
  5. package/compose/core/artifacts.js +262 -0
  6. package/compose/core/context-store.js +218 -0
  7. package/compose/core/generator.d.ts +4 -0
  8. package/compose/core/generator.js +602 -0
  9. package/compose/core/pipeline/engine.js +289 -0
  10. package/compose/core/pipeline/types.js +91 -0
  11. package/compose/core/plan-primitives.js +120 -0
  12. package/compose/core/plan-turn.js +145 -0
  13. package/compose/core/reference.js +150 -0
  14. package/compose/core/state.js +15 -0
  15. package/compose/evals/harness.d.ts +4 -0
  16. package/compose/evals/harness.mjs +193 -0
  17. package/compose/index.d.ts +4 -0
  18. package/compose/index.js +16 -0
  19. package/compose/shared/validate-and-repair.js +122 -0
  20. package/compose/strategies/_shared/chunk-loader.js +282 -0
  21. package/compose/strategies/cascade.d.ts +67 -0
  22. package/compose/strategies/cascade.js +165 -0
  23. package/compose/strategies/escalation.d.ts +13 -0
  24. package/compose/strategies/escalation.js +132 -0
  25. package/compose/strategies/free-form-composer/index.js +254 -0
  26. package/compose/strategies/free-form-composer/system-prompt.js +205 -0
  27. package/compose/strategies/free-form-composer/transpile.js +279 -0
  28. package/compose/strategies/monolithic/_shared.js +1619 -0
  29. package/compose/strategies/monolithic/generate-instant.js +228 -0
  30. package/compose/strategies/monolithic/generate-pro.js +490 -0
  31. package/compose/strategies/monolithic/generate-thinking.js +206 -0
  32. package/compose/strategies/registry.d.ts +20 -0
  33. package/compose/strategies/registry.js +495 -0
  34. package/compose/strategies/zettel/_smoke.js +27 -0
  35. package/compose/strategies/zettel/chunk-composer.js +214 -0
  36. package/compose/strategies/zettel/chunk-refiner.js +582 -0
  37. package/compose/strategies/zettel/chunk-synthesizer.js +458 -0
  38. package/compose/strategies/zettel/composer.js +78 -0
  39. package/compose/strategies/zettel/composition-library.js +418 -0
  40. package/compose/strategies/zettel/generate.js +15 -0
  41. package/compose/strategies/zettel/generator-adapter.d.ts +4 -0
  42. package/compose/strategies/zettel/generator-adapter.js +242 -0
  43. package/compose/strategies/zettel/issue-reporter.js +607 -0
  44. package/compose/strategies/zettel/session-store.js +121 -0
  45. package/compose/strategies/zettel/state-cache.js +158 -0
  46. package/compose/transpiler/transpiler-maps.js +675 -0
  47. package/compose/transpiler/transpiler.d.ts +4 -0
  48. package/compose/transpiler/transpiler.js +962 -0
  49. package/corpus/CHANGELOG.md +1957 -0
  50. package/corpus/README.md +279 -0
  51. package/corpus/catalog-a2ui_0_9.d.ts +4 -0
  52. package/corpus/catalog-a2ui_0_9.json +29571 -0
  53. package/corpus/catalog-a2ui_0_9_rules.txt +1215 -0
  54. package/corpus/chunk-embeddings.d.ts +4 -0
  55. package/corpus/chunk-embeddings.json +1 -0
  56. package/corpus/chunks/_index.json +16658 -0
  57. package/corpus/chunks/_source-hashes.json +571 -0
  58. package/corpus/chunks/access-denied-with-request.json +124 -0
  59. package/corpus/chunks/access-request-form.json +166 -0
  60. package/corpus/chunks/access-request-pending.json +133 -0
  61. package/corpus/chunks/accordion-settings.json +176 -0
  62. package/corpus/chunks/achievement-badges.json +413 -0
  63. package/corpus/chunks/achievement-unlock.json +104 -0
  64. package/corpus/chunks/action-list-record-actions.json +84 -0
  65. package/corpus/chunks/activity-feed.json +390 -0
  66. package/corpus/chunks/admin-page-header-flush.json +83 -0
  67. package/corpus/chunks/admin-page-header-title-description.json +80 -0
  68. package/corpus/chunks/admin-page-header-with-actions.json +107 -0
  69. package/corpus/chunks/admin-page-header-with-tabs.json +144 -0
  70. package/corpus/chunks/admin-shell-rounded-borderless.json +287 -0
  71. package/corpus/chunks/admin-shell-standard.json +310 -0
  72. package/corpus/chunks/admin-sidebar-brand-signin.json +158 -0
  73. package/corpus/chunks/admin-sidebar-brand-version.json +130 -0
  74. package/corpus/chunks/admin-sidebar-flat-nav.json +131 -0
  75. package/corpus/chunks/admin-sidebar-nav-dividers.json +150 -0
  76. package/corpus/chunks/admin-sidebar-nav-groups.json +171 -0
  77. package/corpus/chunks/admin-sidebar-workspace-switcher.json +139 -0
  78. package/corpus/chunks/admin-topbar-breadcrumb-actions.json +130 -0
  79. package/corpus/chunks/admin-topbar-breadcrumb-minimal.json +79 -0
  80. package/corpus/chunks/admin-topbar-deep-breadcrumb.json +129 -0
  81. package/corpus/chunks/admin-topbar-search.json +104 -0
  82. package/corpus/chunks/admin-topbar-status-indicator.json +122 -0
  83. package/corpus/chunks/admin-topbar-trailing-toggle.json +114 -0
  84. package/corpus/chunks/agent-activity-feed.json +163 -0
  85. package/corpus/chunks/agent-artifact-stub-card.json +115 -0
  86. package/corpus/chunks/agent-canvas-shell.json +305 -0
  87. package/corpus/chunks/agent-citations-source-chips.json +82 -0
  88. package/corpus/chunks/agent-command-palette-search.json +120 -0
  89. package/corpus/chunks/agent-cost-detailed.json +260 -0
  90. package/corpus/chunks/agent-cost-inline.json +78 -0
  91. package/corpus/chunks/agent-memory-detail.json +181 -0
  92. package/corpus/chunks/agent-memory-editor.json +173 -0
  93. package/corpus/chunks/agent-memory-list.json +207 -0
  94. package/corpus/chunks/agent-pipeline-status-stages.json +61 -0
  95. package/corpus/chunks/agent-prompt-card.json +179 -0
  96. package/corpus/chunks/agent-prompt-library-grid.json +341 -0
  97. package/corpus/chunks/agent-prompt-picker.json +282 -0
  98. package/corpus/chunks/agent-rate-limit.json +100 -0
  99. package/corpus/chunks/agent-reasoning-collapsed.json +128 -0
  100. package/corpus/chunks/agent-tool-call-accordion.json +109 -0
  101. package/corpus/chunks/agent-tool-call-collapsed.json +98 -0
  102. package/corpus/chunks/agent-tool-call-error.json +112 -0
  103. package/corpus/chunks/agent-tool-call-result.json +145 -0
  104. package/corpus/chunks/agent-tool-call-running.json +85 -0
  105. package/corpus/chunks/agent-tool-call-success.json +137 -0
  106. package/corpus/chunks/agent-trace-timeline.json +244 -0
  107. package/corpus/chunks/ai-streaming-response.json +147 -0
  108. package/corpus/chunks/alert-banner-stack.json +78 -0
  109. package/corpus/chunks/alert-banner.json +55 -0
  110. package/corpus/chunks/alert-dialog-simple.json +72 -0
  111. package/corpus/chunks/alert-dialog-typed.json +107 -0
  112. package/corpus/chunks/alert-dialog-unsaved.json +81 -0
  113. package/corpus/chunks/analytics-chart.json +213 -0
  114. package/corpus/chunks/analytics-sparklines-dashboard.json +259 -0
  115. package/corpus/chunks/anchor-bar-selection-bar.json +226 -0
  116. package/corpus/chunks/api-key-table.json +148 -0
  117. package/corpus/chunks/api-keys-create.json +140 -0
  118. package/corpus/chunks/api-keys-list.json +271 -0
  119. package/corpus/chunks/app-nav-badges-counts.json +77 -0
  120. package/corpus/chunks/app-nav-badges-group-rollup-badges.json +100 -0
  121. package/corpus/chunks/app-nav-badges-plan-tiers.json +76 -0
  122. package/corpus/chunks/app-nav-badges-status-callouts.json +75 -0
  123. package/corpus/chunks/app-nav-full-example.json +195 -0
  124. package/corpus/chunks/app-nav-groups.json +103 -0
  125. package/corpus/chunks/app-nav-items.json +74 -0
  126. package/corpus/chunks/app-nav-labels-and-dividers.json +92 -0
  127. package/corpus/chunks/app-nav-spacer.json +77 -0
  128. package/corpus/chunks/app-product-listing-card.json +214 -0
  129. package/corpus/chunks/approvals-detail.json +240 -0
  130. package/corpus/chunks/approvals-queue.json +321 -0
  131. package/corpus/chunks/audit-log-basic.json +184 -0
  132. package/corpus/chunks/audit-log.json +174 -0
  133. package/corpus/chunks/auth-account-deleted-actions.json +51 -0
  134. package/corpus/chunks/auth-account-deleted.json +202 -0
  135. package/corpus/chunks/auth-card-content.json +260 -0
  136. package/corpus/chunks/auth-card-header.json +205 -0
  137. package/corpus/chunks/auth-email-entry.json +65 -0
  138. package/corpus/chunks/auth-email-verify-confirm.json +52 -0
  139. package/corpus/chunks/auth-email-verify.json +196 -0
  140. package/corpus/chunks/auth-forbidden-actions.json +59 -0
  141. package/corpus/chunks/auth-forbidden.json +203 -0
  142. package/corpus/chunks/auth-invite-actions.json +49 -0
  143. package/corpus/chunks/auth-invite-team-card.json +86 -0
  144. package/corpus/chunks/auth-link-expired-form.json +65 -0
  145. package/corpus/chunks/auth-link-expired.json +196 -0
  146. package/corpus/chunks/auth-locked-account.json +211 -0
  147. package/corpus/chunks/auth-locked-recovery-options.json +60 -0
  148. package/corpus/chunks/auth-mfa-enrollment-submit.json +54 -0
  149. package/corpus/chunks/auth-mfa-enrollment.json +284 -0
  150. package/corpus/chunks/auth-mfa-fallback-actions.json +52 -0
  151. package/corpus/chunks/auth-mfa-recovery.json +61 -0
  152. package/corpus/chunks/auth-new-password-form.json +75 -0
  153. package/corpus/chunks/auth-new-password.json +217 -0
  154. package/corpus/chunks/auth-oauth-fallback-actions.json +52 -0
  155. package/corpus/chunks/auth-oauth-interstitial.json +160 -0
  156. package/corpus/chunks/auth-password-challenge.json +94 -0
  157. package/corpus/chunks/auth-password-reset-form.json +64 -0
  158. package/corpus/chunks/auth-password-reset.json +195 -0
  159. package/corpus/chunks/auth-profile-form.json +72 -0
  160. package/corpus/chunks/auth-profile-setup.json +194 -0
  161. package/corpus/chunks/auth-reset-sent.json +188 -0
  162. package/corpus/chunks/auth-session-expired-actions.json +52 -0
  163. package/corpus/chunks/auth-session-expired.json +201 -0
  164. package/corpus/chunks/auth-signin-card-email.json +245 -0
  165. package/corpus/chunks/auth-signin-card-magic-link.json +147 -0
  166. package/corpus/chunks/auth-signin-card-mfa.json +231 -0
  167. package/corpus/chunks/auth-signin-card-otp.json +205 -0
  168. package/corpus/chunks/auth-signin-card-password.json +264 -0
  169. package/corpus/chunks/auth-signin-card-recovery.json +218 -0
  170. package/corpus/chunks/auth-signout-actions.json +51 -0
  171. package/corpus/chunks/auth-signout.json +184 -0
  172. package/corpus/chunks/auth-signup-email-entry.json +66 -0
  173. package/corpus/chunks/auth-signup-entry.json +281 -0
  174. package/corpus/chunks/auth-signup-social-auths.json +54 -0
  175. package/corpus/chunks/auth-signup-verify.json +227 -0
  176. package/corpus/chunks/auth-social-auths.json +62 -0
  177. package/corpus/chunks/auth-sso-providers.json +55 -0
  178. package/corpus/chunks/auth-sso-required.json +213 -0
  179. package/corpus/chunks/auth-team-invite.json +288 -0
  180. package/corpus/chunks/avatar-group-overflow.json +137 -0
  181. package/corpus/chunks/avatar-stack-overflow.json +124 -0
  182. package/corpus/chunks/banner-announcement-beta.json +99 -0
  183. package/corpus/chunks/banner-announcement-promo.json +102 -0
  184. package/corpus/chunks/banner-live-update.json +102 -0
  185. package/corpus/chunks/banner-system-maintenance.json +101 -0
  186. package/corpus/chunks/banner-system-offline.json +85 -0
  187. package/corpus/chunks/banner-system-update.json +102 -0
  188. package/corpus/chunks/bell-menu-empty.json +107 -0
  189. package/corpus/chunks/bell-menu-unread.json +395 -0
  190. package/corpus/chunks/billing-cancel-subscription-danger.json +61 -0
  191. package/corpus/chunks/billing-invoice-history-table.json +75 -0
  192. package/corpus/chunks/billing-overview.json +202 -0
  193. package/corpus/chunks/billing-payment-method-card-on-file.json +157 -0
  194. package/corpus/chunks/billing-progress-label.json +101 -0
  195. package/corpus/chunks/blog-post-card.json +212 -0
  196. package/corpus/chunks/breadcrumb-navigation.json +72 -0
  197. package/corpus/chunks/bulk-action-toolbar-floating.json +199 -0
  198. package/corpus/chunks/bulk-action-toolbar-swap.json +158 -0
  199. package/corpus/chunks/bulk-selection-actions-bar.json +162 -0
  200. package/corpus/chunks/business-address-form.json +953 -0
  201. package/corpus/chunks/calendar-month-view.json +74 -0
  202. package/corpus/chunks/card-grid-images.json +459 -0
  203. package/corpus/chunks/card-header-with-description.json +47 -0
  204. package/corpus/chunks/card-with-empty-state.json +96 -0
  205. package/corpus/chunks/card-with-form.json +143 -0
  206. package/corpus/chunks/card-with-sparkline.json +90 -0
  207. package/corpus/chunks/card-with-stat-kpi.json +86 -0
  208. package/corpus/chunks/changelog-feed-basic.json +470 -0
  209. package/corpus/chunks/chart-in-card-chart-plus-breakdown.json +188 -0
  210. package/corpus/chunks/chart-in-card-chart-plus-stat.json +89 -0
  211. package/corpus/chunks/chart-in-card-chart-with-filter-pills.json +124 -0
  212. package/corpus/chunks/chart-in-card-full-bleed-legend.json +116 -0
  213. package/corpus/chunks/chart-in-card-full-chart.json +107 -0
  214. package/corpus/chunks/chart-in-card-sparkline-tile.json +93 -0
  215. package/corpus/chunks/chart-in-card-stat-with-sparkline.json +73 -0
  216. package/corpus/chunks/chart-in-card-trend-footer.json +115 -0
  217. package/corpus/chunks/chart-with-filter-pills.json +169 -0
  218. package/corpus/chunks/chat-empty-state-hero.json +102 -0
  219. package/corpus/chunks/chat-message-assistant-byline.json +85 -0
  220. package/corpus/chunks/chat-message-user-byline.json +84 -0
  221. package/corpus/chunks/chat-page-shell.json +379 -0
  222. package/corpus/chunks/chat-streaming-surface.json +169 -0
  223. package/corpus/chunks/checkout-order-summary-card.json +140 -0
  224. package/corpus/chunks/code-snippet.json +107 -0
  225. package/corpus/chunks/col-form-stack.json +93 -0
  226. package/corpus/chunks/col-heading-body-action.json +79 -0
  227. package/corpus/chunks/col-stat-label.json +63 -0
  228. package/corpus/chunks/color-picker-swatches.json +153 -0
  229. package/corpus/chunks/command-palette.json +327 -0
  230. package/corpus/chunks/comments-composer.json +158 -0
  231. package/corpus/chunks/comments-mention-menu.json +237 -0
  232. package/corpus/chunks/comments-thread.json +344 -0
  233. package/corpus/chunks/commerce-pricing-tiers.json +401 -0
  234. package/corpus/chunks/comparison-table.json +246 -0
  235. package/corpus/chunks/contact-form-card.json +197 -0
  236. package/corpus/chunks/contact-form.json +157 -0
  237. package/corpus/chunks/contact-support-form.json +702 -0
  238. package/corpus/chunks/conversion-funnel-4-step-funnel.json +139 -0
  239. package/corpus/chunks/conversion-funnel-6step.json +151 -0
  240. package/corpus/chunks/conversion-funnel-wide-summary.json +192 -0
  241. package/corpus/chunks/conversion-funnel-with-segment-compare.json +202 -0
  242. package/corpus/chunks/cta-banner-centered.json +102 -0
  243. package/corpus/chunks/dashboard-acquisition-panel.json +212 -0
  244. package/corpus/chunks/dashboard-admin-page.json +104 -0
  245. package/corpus/chunks/dashboard-audience-kpis.json +165 -0
  246. package/corpus/chunks/dashboard-audience-panel.json +756 -0
  247. package/corpus/chunks/dashboard-behavior-panel.json +114 -0
  248. package/corpus/chunks/dashboard-chart-recent.json +566 -0
  249. package/corpus/chunks/dashboard-cohort-retention.json +83 -0
  250. package/corpus/chunks/dashboard-conversion-panel.json +234 -0
  251. package/corpus/chunks/dashboard-country-list.json +304 -0
  252. package/corpus/chunks/dashboard-filter-bar.json +118 -0
  253. package/corpus/chunks/dashboard-funnel.json +142 -0
  254. package/corpus/chunks/dashboard-notifications-panel.json +423 -0
  255. package/corpus/chunks/dashboard-overview-panel.json +1644 -0
  256. package/corpus/chunks/dashboard-page-header.json +166 -0
  257. package/corpus/chunks/dashboard-pages-table.json +86 -0
  258. package/corpus/chunks/dashboard-quick-actions.json +116 -0
  259. package/corpus/chunks/dashboard-reports-panel.json +166 -0
  260. package/corpus/chunks/dashboard-reports-table.json +138 -0
  261. package/corpus/chunks/dashboard-storage-card.json +117 -0
  262. package/corpus/chunks/dashboard-tabs.json +86 -0
  263. package/corpus/chunks/dashboard-team-actions-storage.json +605 -0
  264. package/corpus/chunks/dashboard-team-list.json +334 -0
  265. package/corpus/chunks/dashboard-traffic-channels.json +184 -0
  266. package/corpus/chunks/dashboard-transactions-table.json +145 -0
  267. package/corpus/chunks/data-export-history.json +192 -0
  268. package/corpus/chunks/data-export-request.json +197 -0
  269. package/corpus/chunks/data-import-wizard.json +391 -0
  270. package/corpus/chunks/date-range-picker.json +156 -0
  271. package/corpus/chunks/date-time-picker-form.json +222 -0
  272. package/corpus/chunks/departments-checkbox-form.json +390 -0
  273. package/corpus/chunks/destructive-confirm-modal.json +149 -0
  274. package/corpus/chunks/diff-inline.json +84 -0
  275. package/corpus/chunks/diff-side-by-side.json +131 -0
  276. package/corpus/chunks/diff-structured.json +216 -0
  277. package/corpus/chunks/digest-email-preview.json +374 -0
  278. package/corpus/chunks/divider-text-label.json +87 -0
  279. package/corpus/chunks/doc-editor-shell.json +356 -0
  280. package/corpus/chunks/drawer-2fa-key.json +273 -0
  281. package/corpus/chunks/drawer-2fa-sms.json +261 -0
  282. package/corpus/chunks/drawer-2fa-totp.json +385 -0
  283. package/corpus/chunks/drawer-cancel-sub.json +636 -0
  284. package/corpus/chunks/drawer-change-plan.json +561 -0
  285. package/corpus/chunks/drawer-custom-roles.json +696 -0
  286. package/corpus/chunks/drawer-data-start.json +171 -0
  287. package/corpus/chunks/drawer-delete-account.json +341 -0
  288. package/corpus/chunks/drawer-delete-workspace.json +362 -0
  289. package/corpus/chunks/drawer-discord.json +434 -0
  290. package/corpus/chunks/drawer-figma.json +401 -0
  291. package/corpus/chunks/drawer-first-dashboard.json +220 -0
  292. package/corpus/chunks/drawer-gcal.json +475 -0
  293. package/corpus/chunks/drawer-github.json +589 -0
  294. package/corpus/chunks/drawer-invite.json +397 -0
  295. package/corpus/chunks/drawer-record-detail.json +44 -0
  296. package/corpus/chunks/drawer-report.json +528 -0
  297. package/corpus/chunks/drawer-revoke-session.json +331 -0
  298. package/corpus/chunks/drawer-role.json +190 -0
  299. package/corpus/chunks/drawer-slack.json +429 -0
  300. package/corpus/chunks/drawer-smtp.json +476 -0
  301. package/corpus/chunks/drawer-source.json +294 -0
  302. package/corpus/chunks/drawer-transaction.json +493 -0
  303. package/corpus/chunks/drawer-with-create-form.json +43 -0
  304. package/corpus/chunks/editor-code-pane.json +204 -0
  305. package/corpus/chunks/editor-page-shell.json +149 -0
  306. package/corpus/chunks/editor-preview-pane.json +136 -0
  307. package/corpus/chunks/editor-statusbar-ready.json +99 -0
  308. package/corpus/chunks/editor-toolbar-import-export.json +195 -0
  309. package/corpus/chunks/email-inbox-list.json +678 -0
  310. package/corpus/chunks/empty-state-danger.json +58 -0
  311. package/corpus/chunks/empty-state-minimal.json +44 -0
  312. package/corpus/chunks/empty-state-warning.json +53 -0
  313. package/corpus/chunks/empty-state.json +65 -0
  314. package/corpus/chunks/error-404-actions.json +54 -0
  315. package/corpus/chunks/error-404.json +204 -0
  316. package/corpus/chunks/error-500-actions.json +61 -0
  317. package/corpus/chunks/error-500.json +220 -0
  318. package/corpus/chunks/error-maintenance-actions.json +53 -0
  319. package/corpus/chunks/error-maintenance.json +203 -0
  320. package/corpus/chunks/error-page-shell.json +132 -0
  321. package/corpus/chunks/export-flow-async.json +210 -0
  322. package/corpus/chunks/export-flow-delivery.json +163 -0
  323. package/corpus/chunks/export-flow-sync.json +162 -0
  324. package/corpus/chunks/extended-profile-form.json +512 -0
  325. package/corpus/chunks/faq-accordion.json +123 -0
  326. package/corpus/chunks/feature-grid-icons.json +314 -0
  327. package/corpus/chunks/feature-grid-three-cards.json +187 -0
  328. package/corpus/chunks/feature-toggle-switch-grid.json +213 -0
  329. package/corpus/chunks/file-upload-dnd.json +166 -0
  330. package/corpus/chunks/file-upload-field.json +97 -0
  331. package/corpus/chunks/file-upload-form.json +251 -0
  332. package/corpus/chunks/filter-bar-active-filters.json +176 -0
  333. package/corpus/chunks/filter-bar-filter-bar-with-table.json +113 -0
  334. package/corpus/chunks/filter-bar-saved-views.json +117 -0
  335. package/corpus/chunks/filter-popover-form.json +137 -0
  336. package/corpus/chunks/footer-multi-column.json +270 -0
  337. package/corpus/chunks/footer-primary-only.json +41 -0
  338. package/corpus/chunks/form-checkbox-group.json +65 -0
  339. package/corpus/chunks/form-drawer-edit-form.json +178 -0
  340. package/corpus/chunks/form-drawer-simple-form.json +151 -0
  341. package/corpus/chunks/form-drawer-tall-form.json +325 -0
  342. package/corpus/chunks/form-field-email-hint.json +53 -0
  343. package/corpus/chunks/form-field-range.json +54 -0
  344. package/corpus/chunks/form-field-required.json +52 -0
  345. package/corpus/chunks/form-field-select.json +66 -0
  346. package/corpus/chunks/form-field-textarea.json +51 -0
  347. package/corpus/chunks/form-field-with-error.json +151 -0
  348. package/corpus/chunks/form-fields-two-column.json +69 -0
  349. package/corpus/chunks/form-page-shell.json +146 -0
  350. package/corpus/chunks/form-switch-toggle.json +41 -0
  351. package/corpus/chunks/form-system-live-demo.json +123 -0
  352. package/corpus/chunks/forms-address-autocomplete.json +277 -0
  353. package/corpus/chunks/forms-address-fields.json +221 -0
  354. package/corpus/chunks/forms-conditional-reveal.json +195 -0
  355. package/corpus/chunks/gallery-page-shell.json +444 -0
  356. package/corpus/chunks/grid-2col-entry-cards.json +140 -0
  357. package/corpus/chunks/grid-kpi-4col.json +164 -0
  358. package/corpus/chunks/grid-responsive-kpi.json +165 -0
  359. package/corpus/chunks/hero-cta-simple.json +107 -0
  360. package/corpus/chunks/hero-cta-split.json +183 -0
  361. package/corpus/chunks/hero-section-split.json +111 -0
  362. package/corpus/chunks/icon-text-row.json +60 -0
  363. package/corpus/chunks/image-caption-tile.json +99 -0
  364. package/corpus/chunks/image-carousel.json +156 -0
  365. package/corpus/chunks/image-thumbnail-grid.json +77 -0
  366. package/corpus/chunks/image-upload-preview.json +118 -0
  367. package/corpus/chunks/import-mapping-flow.json +972 -0
  368. package/corpus/chunks/inline-dialog-rename.json +128 -0
  369. package/corpus/chunks/inline-dialog-schedule.json +154 -0
  370. package/corpus/chunks/inline-dialog-status.json +179 -0
  371. package/corpus/chunks/integrations-api-keys-card-list.json +475 -0
  372. package/corpus/chunks/integrations-connect-form.json +550 -0
  373. package/corpus/chunks/integrations-grid.json +141 -0
  374. package/corpus/chunks/integrations-webhooks-empty-state.json +66 -0
  375. package/corpus/chunks/inventory-list-stock.json +137 -0
  376. package/corpus/chunks/invite-members.json +153 -0
  377. package/corpus/chunks/invoice-line-items.json +493 -0
  378. package/corpus/chunks/kanban-board-3col.json +713 -0
  379. package/corpus/chunks/kanban-page-shell.json +671 -0
  380. package/corpus/chunks/key-value-detail-list.json +242 -0
  381. package/corpus/chunks/keyboard-shortcut-display.json +250 -0
  382. package/corpus/chunks/labeled-textarea.json +45 -0
  383. package/corpus/chunks/leaderboard-table.json +140 -0
  384. package/corpus/chunks/library-browser-search-filter.json +109 -0
  385. package/corpus/chunks/linked-record-row.json +61 -0
  386. package/corpus/chunks/loading-skeleton-placeholder.json +387 -0
  387. package/corpus/chunks/login-form-card.json +207 -0
  388. package/corpus/chunks/logo-cloud-trusted-by.json +235 -0
  389. package/corpus/chunks/map-with-location-list.json +293 -0
  390. package/corpus/chunks/marketing-hero-cta.json +102 -0
  391. package/corpus/chunks/marketing-page-shell.json +352 -0
  392. package/corpus/chunks/masonry-gallery.json +154 -0
  393. package/corpus/chunks/member-edit-drawer.json +236 -0
  394. package/corpus/chunks/members-active-table-search-filter.json +184 -0
  395. package/corpus/chunks/members-pending-invites-cards.json +251 -0
  396. package/corpus/chunks/members-roles-permissions-list.json +146 -0
  397. package/corpus/chunks/menu-context-actions.json +113 -0
  398. package/corpus/chunks/metadata-description-list.json +178 -0
  399. package/corpus/chunks/modal-create-project-form.json +133 -0
  400. package/corpus/chunks/modal-preferences-tabs.json +147 -0
  401. package/corpus/chunks/multi-field-form-validation.json +394 -0
  402. package/corpus/chunks/nav-menu-icons.json +74 -0
  403. package/corpus/chunks/newsletter-subscription.json +190 -0
  404. package/corpus/chunks/notification-badges-feed.json +411 -0
  405. package/corpus/chunks/notification-preferences-panel.json +238 -0
  406. package/corpus/chunks/onb-completion.json +139 -0
  407. package/corpus/chunks/onb-extension-install.json +172 -0
  408. package/corpus/chunks/onb-hero-welcome.json +156 -0
  409. package/corpus/chunks/onb-import-picker.json +86 -0
  410. package/corpus/chunks/onb-mobile-handoff.json +121 -0
  411. package/corpus/chunks/onb-notification-prefs.json +83 -0
  412. package/corpus/chunks/onb-persona-picker.json +82 -0
  413. package/corpus/chunks/onb-provider-tiles.json +137 -0
  414. package/corpus/chunks/onb-settings-review.json +257 -0
  415. package/corpus/chunks/onb-step-footer.json +121 -0
  416. package/corpus/chunks/onb-step-header.json +121 -0
  417. package/corpus/chunks/onb-step-progress.json +140 -0
  418. package/corpus/chunks/onb-step-shell.json +380 -0
  419. package/corpus/chunks/onb-story-pane.json +121 -0
  420. package/corpus/chunks/onb-tutorial-steps.json +193 -0
  421. package/corpus/chunks/order-confirmation-success-card.json +177 -0
  422. package/corpus/chunks/order-tracking-timeline.json +131 -0
  423. package/corpus/chunks/pagination-controls.json +82 -0
  424. package/corpus/chunks/pane-settings-sidebar.json +204 -0
  425. package/corpus/chunks/patient-visit-shell.json +191 -0
  426. package/corpus/chunks/payment-checkout-form.json +341 -0
  427. package/corpus/chunks/payment-method-form.json +328 -0
  428. package/corpus/chunks/period-comparison.json +236 -0
  429. package/corpus/chunks/permission-matrix-table.json +438 -0
  430. package/corpus/chunks/permissions-matrix-grid.json +111 -0
  431. package/corpus/chunks/permissions-matrix-summary.json +157 -0
  432. package/corpus/chunks/permissions-role-picker-radio.json +107 -0
  433. package/corpus/chunks/permissions-role-picker-select.json +101 -0
  434. package/corpus/chunks/permissions-share-link.json +256 -0
  435. package/corpus/chunks/permissions-share-people.json +297 -0
  436. package/corpus/chunks/permissions-sharing-scopes.json +109 -0
  437. package/corpus/chunks/plan-selection-form.json +529 -0
  438. package/corpus/chunks/playground-a2ui.json +181 -0
  439. package/corpus/chunks/playground-agent-admin.json +117 -0
  440. package/corpus/chunks/playground-agent-chat.json +126 -0
  441. package/corpus/chunks/playground-app-shell.json +488 -0
  442. package/corpus/chunks/playground-chat.json +265 -0
  443. package/corpus/chunks/playground-construct-canvas.json +118 -0
  444. package/corpus/chunks/playground-css-channel.json +487 -0
  445. package/corpus/chunks/playground-gen-ui.json +224 -0
  446. package/corpus/chunks/playground-render-preview.json +369 -0
  447. package/corpus/chunks/playground-streams-bridge.json +437 -0
  448. package/corpus/chunks/playground-table-toolbar.json +38 -0
  449. package/corpus/chunks/popover-with-content.json +118 -0
  450. package/corpus/chunks/pricing-tiers.json +561 -0
  451. package/corpus/chunks/product-tour.json +158 -0
  452. package/corpus/chunks/profile-public.json +297 -0
  453. package/corpus/chunks/progress-tracker-milestones.json +294 -0
  454. package/corpus/chunks/radio-button-group.json +83 -0
  455. package/corpus/chunks/rating-stars-review-summary.json +259 -0
  456. package/corpus/chunks/reactions-bar.json +75 -0
  457. package/corpus/chunks/reactions-picker.json +245 -0
  458. package/corpus/chunks/real-time-metrics-dashboard.json +344 -0
  459. package/corpus/chunks/record-detail-drawer-simple-detail.json +296 -0
  460. package/corpus/chunks/record-detail-drawer-tabbed-detail.json +443 -0
  461. package/corpus/chunks/referral-share-link.json +128 -0
  462. package/corpus/chunks/referral-status.json +243 -0
  463. package/corpus/chunks/reg-address-form.json +825 -0
  464. package/corpus/chunks/reg-billing-card.json +210 -0
  465. package/corpus/chunks/reg-brand-scrape.json +599 -0
  466. package/corpus/chunks/reg-departments-toggle.json +259 -0
  467. package/corpus/chunks/reg-extended-profile.json +356 -0
  468. package/corpus/chunks/reg-final-done.json +457 -0
  469. package/corpus/chunks/reg-helpdesk-grid.json +571 -0
  470. package/corpus/chunks/reg-import-picker.json +112 -0
  471. package/corpus/chunks/reg-integrations-grid.json +418 -0
  472. package/corpus/chunks/reg-invite-form.json +245 -0
  473. package/corpus/chunks/reg-legal-entity.json +260 -0
  474. package/corpus/chunks/reg-org-chart-review.json +891 -0
  475. package/corpus/chunks/reg-profile-identity.json +188 -0
  476. package/corpus/chunks/reg-step-footer.json +201 -0
  477. package/corpus/chunks/reg-step-header.json +201 -0
  478. package/corpus/chunks/reg-step-progress.json +236 -0
  479. package/corpus/chunks/reg-step-shell.json +605 -0
  480. package/corpus/chunks/reg-story-pane.json +201 -0
  481. package/corpus/chunks/reg-success-summary.json +257 -0
  482. package/corpus/chunks/reg-team-size.json +128 -0
  483. package/corpus/chunks/reg-usecase-picker.json +104 -0
  484. package/corpus/chunks/reg-workspace-name.json +159 -0
  485. package/corpus/chunks/responsive-grid-pattern.json +71 -0
  486. package/corpus/chunks/responsive-kpi-grid.json +166 -0
  487. package/corpus/chunks/responsive-row-pattern.json +71 -0
  488. package/corpus/chunks/responsive-shell-sidebar.json +308 -0
  489. package/corpus/chunks/responsive-wrap-at-pattern.json +124 -0
  490. package/corpus/chunks/retention-cohort-default-retention.json +80 -0
  491. package/corpus/chunks/retention-cohort-stat-pair.json +163 -0
  492. package/corpus/chunks/retention-cohort-with-legend.json +135 -0
  493. package/corpus/chunks/revenue-heatmap.json +82 -0
  494. package/corpus/chunks/role-management.json +272 -0
  495. package/corpus/chunks/row-action-cluster.json +54 -0
  496. package/corpus/chunks/row-avatar-name-role.json +71 -0
  497. package/corpus/chunks/row-icon-label.json +52 -0
  498. package/corpus/chunks/row-spread-label-value.json +54 -0
  499. package/corpus/chunks/row-wrap-tags.json +72 -0
  500. package/corpus/chunks/schedule-meeting-form-card.json +229 -0
  501. package/corpus/chunks/search-recents-menu.json +195 -0
  502. package/corpus/chunks/search-results-grouped.json +357 -0
  503. package/corpus/chunks/search-results-list.json +202 -0
  504. package/corpus/chunks/search-saved-views.json +356 -0
  505. package/corpus/chunks/search-with-filters.json +311 -0
  506. package/corpus/chunks/searchable-picker-modal.json +164 -0
  507. package/corpus/chunks/section-with-stack.json +48 -0
  508. package/corpus/chunks/security-active-sessions-devices.json +287 -0
  509. package/corpus/chunks/security-change-password-form.json +102 -0
  510. package/corpus/chunks/security-delete-account-danger.json +79 -0
  511. package/corpus/chunks/segmented-control-billing-tabs.json +164 -0
  512. package/corpus/chunks/select-multiple-preselected.json +70 -0
  513. package/corpus/chunks/settings-2fa-setup.json +307 -0
  514. package/corpus/chunks/settings-admin-page.json +1205 -0
  515. package/corpus/chunks/settings-appearance-primitives.json +145 -0
  516. package/corpus/chunks/settings-appearance-theme-panel.json +55 -0
  517. package/corpus/chunks/settings-appearance.json +81 -0
  518. package/corpus/chunks/settings-danger-zone-delete-workspace.json +93 -0
  519. package/corpus/chunks/settings-general-form.json +69 -0
  520. package/corpus/chunks/settings-integrations.json +298 -0
  521. package/corpus/chunks/settings-members-invite.json +112 -0
  522. package/corpus/chunks/settings-notification-activity-checkboxes.json +108 -0
  523. package/corpus/chunks/settings-notification-channels-switches.json +101 -0
  524. package/corpus/chunks/settings-page-shell.json +190 -0
  525. package/corpus/chunks/settings-privacy.json +83 -0
  526. package/corpus/chunks/settings-profile-security.json +122 -0
  527. package/corpus/chunks/settings-toggle-switches.json +66 -0
  528. package/corpus/chunks/sidebar-nav.json +120 -0
  529. package/corpus/chunks/sidebar-navigation-panel.json +165 -0
  530. package/corpus/chunks/signup-form-card.json +218 -0
  531. package/corpus/chunks/signup-team-size-form.json +259 -0
  532. package/corpus/chunks/single-select-card-form.json +231 -0
  533. package/corpus/chunks/slider-range-controls.json +119 -0
  534. package/corpus/chunks/social-media-post-card.json +159 -0
  535. package/corpus/chunks/sortable-list.json +307 -0
  536. package/corpus/chunks/sortable-search-paginate-table.json +162 -0
  537. package/corpus/chunks/split-pane-editor.json +146 -0
  538. package/corpus/chunks/stack-avatar-badge-overlay.json +53 -0
  539. package/corpus/chunks/stack-image-shimmer.json +51 -0
  540. package/corpus/chunks/stat-cards-kpi-dashboard.json +178 -0
  541. package/corpus/chunks/stats-band-big-numbers.json +175 -0
  542. package/corpus/chunks/status-dashboard.json +282 -0
  543. package/corpus/chunks/stepper-form-wizard.json +165 -0
  544. package/corpus/chunks/subscription-status-renewal-card.json +285 -0
  545. package/corpus/chunks/survey-rating-form.json +165 -0
  546. package/corpus/chunks/swiper-product-carousel.json +349 -0
  547. package/corpus/chunks/swiper-testimonial-carousel.json +279 -0
  548. package/corpus/chunks/table-empty-state.json +116 -0
  549. package/corpus/chunks/table-inline-edit-row.json +269 -0
  550. package/corpus/chunks/table-spreadsheet-cells.json +334 -0
  551. package/corpus/chunks/table-toolbar-no-search.json +42 -0
  552. package/corpus/chunks/table-toolbar-with-table.json +208 -0
  553. package/corpus/chunks/table-with-toolbar-card.json +80 -0
  554. package/corpus/chunks/tabs-with-panels.json +187 -0
  555. package/corpus/chunks/tag-chips-filter.json +100 -0
  556. package/corpus/chunks/team-invite-form.json +380 -0
  557. package/corpus/chunks/team-members-list.json +341 -0
  558. package/corpus/chunks/testimonial-grid.json +269 -0
  559. package/corpus/chunks/testimonial-pull-quote.json +137 -0
  560. package/corpus/chunks/testimonials-avatar-cards.json +286 -0
  561. package/corpus/chunks/timeline-events.json +89 -0
  562. package/corpus/chunks/timezone-selector-basic.json +99 -0
  563. package/corpus/chunks/timezone-selector-preview.json +104 -0
  564. package/corpus/chunks/toolbar-icons.json +216 -0
  565. package/corpus/chunks/toolbar-rich-text-editor.json +230 -0
  566. package/corpus/chunks/toolbar-tooltips.json +191 -0
  567. package/corpus/chunks/tooltip-hover-button.json +106 -0
  568. package/corpus/chunks/tree-file-explorer.json +136 -0
  569. package/corpus/chunks/tree-table-basic.json +171 -0
  570. package/corpus/chunks/trial-banner.json +158 -0
  571. package/corpus/chunks/url-import-form.json +728 -0
  572. package/corpus/chunks/usage-quota-meter-card.json +217 -0
  573. package/corpus/chunks/user-identity-row.json +81 -0
  574. package/corpus/chunks/user-onboarding-checklist.json +301 -0
  575. package/corpus/chunks/user-profile-card.json +192 -0
  576. package/corpus/chunks/users-table-badge.json +135 -0
  577. package/corpus/chunks/verification-document-upload.json +179 -0
  578. package/corpus/chunks/verification-status.json +97 -0
  579. package/corpus/chunks/verification-stepper.json +111 -0
  580. package/corpus/chunks/video-player-controls.json +120 -0
  581. package/corpus/chunks/webhook-config.json +209 -0
  582. package/corpus/chunks/webhooks-list.json +204 -0
  583. package/corpus/chunks/wizard-drawer-three-step-wizard.json +443 -0
  584. package/corpus/manifest.d.ts +4 -0
  585. package/corpus/manifest.json +6 -0
  586. package/corpus/scripts/chunk-library.d.ts +4 -0
  587. package/corpus/scripts/chunk-library.js +335 -0
  588. package/node-shims.d.ts +48 -0
  589. package/package.json +215 -0
  590. package/retrieval/CHANGELOG.md +1073 -0
  591. package/retrieval/README.md +71 -0
  592. package/retrieval/anti-patterns.js +189 -0
  593. package/retrieval/authoring/index.d.ts +4 -0
  594. package/retrieval/authoring/index.js +9 -0
  595. package/retrieval/authoring/web-research.js +220 -0
  596. package/retrieval/catalog.js +250 -0
  597. package/retrieval/component-catalog.js +168 -0
  598. package/retrieval/component-entry.js +80 -0
  599. package/retrieval/context-assembler.js +174 -0
  600. package/retrieval/domain-router.js +417 -0
  601. package/retrieval/embedding/chunk-embedding-retriever.js +117 -0
  602. package/retrieval/embedding/embedding-provider.js +72 -0
  603. package/retrieval/embedding/index.d.ts +4 -0
  604. package/retrieval/embedding/index.js +2 -0
  605. package/retrieval/feedback/dialog-recorder.js +107 -0
  606. package/retrieval/feedback/feedback-analyzer.js +180 -0
  607. package/retrieval/feedback/feedback-store.js +194 -0
  608. package/retrieval/feedback/feedback.js +117 -0
  609. package/retrieval/feedback/gap-registry.js +80 -0
  610. package/retrieval/feedback/human-signal.js +113 -0
  611. package/retrieval/feedback/index.d.ts +4 -0
  612. package/retrieval/feedback/index.js +24 -0
  613. package/retrieval/feedback/submit-feedback.js +45 -0
  614. package/retrieval/index.d.ts +4 -0
  615. package/retrieval/index.js +53 -0
  616. package/retrieval/intent/clarity.js +139 -0
  617. package/retrieval/intent/decomposer.js +124 -0
  618. package/retrieval/intent/index.d.ts +4 -0
  619. package/retrieval/intent/index.js +18 -0
  620. package/retrieval/intent/intent-alignment.js +172 -0
  621. package/retrieval/intent/intent-categorizer.js +69 -0
  622. package/retrieval/intent/intent-gate.js +96 -0
  623. package/retrieval/intent/prompt-analyzer.js +162 -0
  624. package/retrieval/wiring-catalog.js +168 -0
  625. package/validate/catalog-validator.d.ts +4 -0
  626. package/validate/catalog-validator.js +327 -0
  627. package/validate/semantic/cache.js +54 -0
  628. package/validate/semantic/classify-intent.js +128 -0
  629. package/validate/semantic/index.js +163 -0
  630. package/validate/semantic/intent-specs.js +162 -0
  631. package/validate/semantic/judge.js +180 -0
@@ -0,0 +1,1957 @@
1
+ # Changelog — @adia-ai/a2ui-corpus
2
+
3
+ ## [0.8.36] — 2026-08-13
4
+
5
+ ### Fixed
6
+ - **`scripts/chunk-library.js`'s embedding retriever import walked out of the package root (gh#1186).** The lazy `await import('../../retrieval/embedding/chunk-embedding-retriever.js')` resolves only inside the monorepo; in an installed package it always threw and was always swallowed by the surrounding `catch`, so semantic chunk scoring silently degraded to keyword-only for every consumer instead of failing loudly. Now `@adia-ai/a2ui-retrieval/embedding/chunk-embedding-retriever`, with `@adia-ai/a2ui-retrieval` declared as an `optionalDependency` — the import is genuinely optional (guarded by `A2UI_DISABLE_EMBEDDINGS` and a `try`), so a hard dependency would overstate it.
7
+
8
+ ## [0.8.35] — 2026-08-13
9
+
10
+ ### Maintenance
11
+ - **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.35 work shipped in factory-DX program (scaffold boot+CSS fixes, class-B npm marketplace, consumer CI recipe, DX sweep) + audit-wave plugin hardening + ~20 component/pattern fixes. See `packages/plugins/adia-ui-factory/CHANGELOG.md#0835--2026-08-13` for details.
12
+ - **`chunks/` touched in this release window** (52 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
13
+
14
+ ## [0.8.34] — 2026-08-11
15
+
16
+ ### Fixed
17
+
18
+ - **`Command` / `Combobox` `options` now validate as rich option objects (`DynamicObjectList`).** The yaml SoT omitted `items.type`, so the derived catalog mapped both to `DynamicStringList` and the dialect validator rejected every harvested rich-options palette (e.g. the agent-command-palette-search chunk) — caught by exit-gate.corpus at v0.8.34 release pre-flight, fixed at the yaml source and regenerated.
19
+ - **`tag-chips-filter` chunk vocabulary purged of `tags-input` terms (gh#912)** so command/tag retrieval stops surfacing the wrong primitive.
20
+ - **`responsive-shell-sidebar` chunk re-harvested** from the repaired fragment demo (gh#959) with its dual-mount slots intact.
21
+
22
+ ### Maintenance
23
+ - **`chunks/` touched in this release window** (44 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
24
+
25
+ ## [0.8.33] — 2026-08-11
26
+
27
+ ### Fixed
28
+
29
+ - **27 chunk files re-harvested — their templates no longer carry hollow containers (gh#848).** Chunks are build outputs of `transpileHTML` over the demo HTML, so every chunk whose markup used an unregistered tag captured that tag's Unknown-fallback degrade into its `template`. With the tags registered (`admin-entity-item`, `section-ui`, the billing/agent-admin composites) and `dl`/`dt`/`dd` mapped, the affected templates now carry the real component types: the `admin-shell-*` / `admin-sidebar-*` chunks (`section-ui`), `playground-agent-admin` + `playground-app-shell` (the agent-admin composites, `admin-entity-item`), `agent-memory-editor` (`form`), and the description-list family (`key-value-detail-list`, `metadata-description-list`, `record-detail-drawer-*`, `subscription-status-renewal-card`, `wizard-drawer-three-step-wizard`, `approvals-detail`, `agent-cost-detailed`, `diff-structured`, …). Regenerated with `npm run harvest:chunks`, never hand-edited; `npm run verify:corpus` stays at 0 critical.
30
+
31
+ ## [0.8.32] — 2026-08-09
32
+
33
+ ### Fixed
34
+ - **Chunk retrieval reads the annotations it was authored with (gh#803).** `keywordScore()` scored only a chunk's name, primary tag, slot names and attrs — every `data-chunk-keywords` / `data-chunk-description` harvested by the annotation waves was dead weight. Keywords now score +2 and description words +1 (whole-word only), alongside four other ranking repairs: tokenize on non-alphanumerics (an intent reading `split-pane editor: code…` produced the token `editor:`, which matched nothing) plus closed-form compounds (`sign-in` → `signin`); stop-words no longer earn the first-name-word bonus, so `form-*` fragments stopped out-ranking whole forms on the word "form"; singular/plural stemming on both sides (`notifications` → `notification-*`); and +2 when a query word names a component the chunk is actually built from. Ties now break by name instead of by `readdir` order, which is inode-ordered on Linux and alphabetical on macOS — the same query could rank differently in CI than locally.
35
+ - **Four canonical pattern pages named their chunk after something they aren't.** `changelog-activity-feed` → `agent-activity-feed` (the markup is `agent-trace-ui`/`agent-reasoning-ui`/`agent-artifact-ui`; its description and keywords described a changelog), `badge-variants-table` → `users-table-badge`, `modal-dialog-confirm` → `destructive-confirm-modal`, `split-pane-editor-preview` → `editor-preview-pane` (it is the preview half; its keywords claimed the whole split-pane layout). Re-harvested + embedding index rebuilt.
36
+ - **`resolveNestedChunks()` — skeleton block chunks can be made whole.** 47 block chunks are page skeletons whose body is `<!-- nested: … -->`. Resolution is page-scoped: a generic name like `auth-card-header` has 23 instances and the record's first belongs to the 404 page, so an unscoped splice filled the sign-in card with 404 copy.
37
+ - **Hold-out realigned to chunk names that exist (bucket A).** `dashboard-kpi-grid` (never a chunk — a pattern-index page name) → `grid-kpi-4col`; `auth-link-expired-form` → `auth-signin-card-password`; `settings-general-form` → `notification-preferences-panel`.
38
+
39
+ ### Added
40
+ - **`split-pane-editor` pattern chunk** — the corpus held each half (`editor-code-pane`, `editor-preview-pane`) but no two-pane editor, so both the chunk eval's split-pane intent and zettel's `split pane layout` case had no honest answer. Two `pane-ui [side]` panes sharing one drag seam, per pane.yaml's standalone two-pane contract.
41
+
42
+ ### Maintenance
43
+ - **`evals/` touched in this release window** (1 file(s), e.g. `evals/holdout-compose-from-chunks.jsonl`) — carried by the entries above.
44
+ - **`scripts/` touched in this release window** (1 file(s), e.g. `scripts/chunk-library.js`) — carried by the entries above.
45
+
46
+ ## [0.8.31] — 2026-08-07
47
+
48
+ ### Changed
49
+ - **Catalog regenerated for the ListItem anatomy repair** (gh#653): `ListItem` now declares its `text` and `content` slots, which `list.class.js` / `list.css` have always honored. No component behavior change — the catalog just stopped under-reporting the anatomy that per-child slot addressing addresses INTO.
50
+
51
+ ### Maintenance
52
+ - **`chunks/` touched in this release window** (3 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
53
+
54
+ ## [0.8.30] — 2026-08-07
55
+
56
+ ### Maintenance
57
+ - **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.30 work shipped in agent-harness v1 wave: MCP-client mode, guardrails/tracing/memory hardening, auto engine, chat agent-event rendering, human feedback loop. See `packages/agent/CHANGELOG.md#0830--2026-08-07` for details.
58
+ - **`chunks/` touched in this release window** (3 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
59
+
60
+ ## [0.8.29] — 2026-08-06
61
+
62
+ ### Maintenance
63
+ - **Chunk corpus re-harvested + embeddings rebuilt** — 524 chunks recaptured (the committed corpus dated 2026-07-28 had drifted behind main, e.g. the AdiaMark brand-mark rename); chunk-embeddings.json regenerated to match (rode PRs #658/#659).
64
+
65
+ ## [0.8.28] — 2026-08-05
66
+
67
+ ### Maintenance
68
+ - **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.
69
+
70
+ ## [0.8.27] — 2026-08-05
71
+
72
+ ### Maintenance
73
+ - **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.
74
+
75
+ ## [0.8.26] — 2026-08-05
76
+
77
+ ### Maintenance
78
+ - **Chunk corpus re-harvested** for the new `playgrounds/agent-chat` surface-demo, the `agent-admin` playground, and the `render-preview` v1-parity pane — 523 chunks, embeddings rebuilt (1536d).
79
+
80
+ ## [0.8.25] — 2026-07-31
81
+
82
+ ### Maintenance
83
+ - **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.
84
+ - **`chunks/` touched in this release window** (6 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
85
+
86
+ ## [0.8.24] — 2026-07-30
87
+
88
+ ### Maintenance
89
+ - **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.
90
+ - **`chunks/` touched in this release window** (36 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
91
+
92
+ ## [0.8.23] — 2026-07-30
93
+
94
+ ### Maintenance
95
+ - **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.
96
+ - **`chunks/` touched in this release window** (118 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
97
+
98
+ ## [0.8.22] — 2026-07-29
99
+
100
+ ### Maintenance
101
+ - **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.
102
+
103
+ ## [0.8.21] — 2026-07-28
104
+
105
+ ### Maintenance
106
+ - **Generated-catalog follow-on.** `catalog-a2ui_0_9.json` regenerated for `select-ui`’s documented `{action, label}` command-row entry shape (no radio indicator; see `packages/web-components/CHANGELOG.md`#0821--2026-07-28).
107
+ - **`chunks/` touched in this release window** (38 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
108
+
109
+ ## [0.8.20] — 2026-07-28
110
+
111
+ ### Maintenance
112
+ - **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.20 work shipped in form/ subpath exports (gh#457) + tarball test-file hygiene, 7 packages (gh#462). See `packages/web-modules/CHANGELOG.md#0820--2026-07-28` for details.
113
+
114
+ ## [0.8.19] — 2026-07-27
115
+
116
+ ### Maintenance
117
+ - **Generated-catalog follow-on.** `catalog-a2ui_0_9.json` regenerated for `select-ui`'s new `[summary-label]` attribute (gh#442; the component `.yaml` is the source of truth) — no hand-authored source changes in this package. See `packages/web-components/CHANGELOG.md#0819--2026-07-27` for the feature entry.
118
+ - **`chunks/` touched in this release window** (1 file(s), e.g. `chunks/_source-hashes.json`) — carried by the entries above.
119
+
120
+ ### Note
121
+ - Version bumped in lockstep (11-package coherence, `scripts/release/check-lockstep.mjs`); remaining v0.8.19 substantive work: form/ cluster publishes (gh#448) + row-hover container-ladder token fix — see `packages/web-modules/CHANGELOG.md#0819--2026-07-27`.
122
+
123
+ ## [0.8.18] — 2026-07-27
124
+
125
+ ### Maintenance
126
+ - **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.
127
+ - **`chunks/` touched in this release window** (3 file(s), e.g. `chunks/_index.json`) — carried by the entries above.
128
+
129
+ ## [0.8.17] — 2026-07-27
130
+
131
+ ### Added
132
+ - **Source set 506 → 508; chunks 394 → 395** — the demo-route sweep (new Pattern Library sitemap section + 35 newly-routed component demos) added the regenerated patterns gallery page to the harvest set.
133
+ - **`filter-popover-form` chunk** — the "form fragment in a popover" primitive composition (popover-ui + summary trigger + check/radio/input/divider), harvested from the new `catalog/ui-patterns/app/filter-popover-form/` exemplar. First popover-hosted form pattern in the corpus; also the canonical Pattern source the `form-popover` module demo cites. NOTE: the chunk-embedding index rebuild is pending an embedding-provider key (OpenAI quota exhausted at build time) — `check:embeddings-fresh` is red until `npm run build:embeddings:chunks` runs.
134
+
135
+ ## [0.8.16] — 2026-07-26
136
+
137
+ ### Maintenance
138
+ - **`chunks/_source-hashes.json` re-recorded** for the new `/site/guides/theming` docs page (harvested source set 505 → 506 files). Chunk **content** is unchanged — 394 chunks, manifest timestamp preserved — so the embedding index stays valid on its content hash; no rebuild.
139
+
140
+ ## [0.8.15] — 2026-07-26
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.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.
144
+
145
+ ## [0.8.14] — 2026-07-25
146
+
147
+ ### Maintenance
148
+ - **`catalog-a2ui_0_9.json` regenerated** — picks up this window's component yaml edits (`context-menu`'s `--context-menu-bg` documented default) via `node scripts/build/components.mjs`. No chunk or fragment content changed.
149
+ - **`chunks/` touched in this release window** (1 file(s), e.g. `chunks/_source-hashes.json`) — carried by the entries above.
150
+
151
+ ## [0.8.13] — 2026-07-25
152
+
153
+ ### Maintenance
154
+ - **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.
155
+
156
+ ## [0.8.12] — 2026-07-24
157
+
158
+ ### Changed
159
+ - **Catalog reflects `tag-ui`'s new `lg` size tier** (`catalog-a2ui_0_9.json`) — regenerated from web-components' yaml after `tag-ui`'s size enum grew to sm/md/lg (PR #401).
160
+
161
+ ### Maintenance
162
+ - **`chunks/` touched in this release window** (1 file(s), e.g. `chunks/_source-hashes.json`) — carried by the entries above.
163
+
164
+ ## [0.8.11] — 2026-07-23
165
+
166
+ ### Changed
167
+ - **Catalog + chunks reflect the sm/md/lg size model** (`catalog-a2ui_0_9.json`, `catalog-a2ui_0_9_rules.txt`, 18 re-harvested `chunks/*.json`, `common_types.json` size wording) — every component `size` enum in the catalog is now `sm|md|lg` (web-components v0.8.11 BREAKING change; the AJV validator now rejects `xs`/`xl` on enum-carrying components), and the chunks harvested from swept demo/catalog sources carry the remapped values. Value-only re-harvest: zero chunk-name churn (394 chunks, identities stable); embeddings rebuilt; zettel eval floors preserved (coverage 93%, avgScore 90, MRR 1.0).
168
+
169
+ ## [0.8.10] — 2026-07-20
170
+
171
+ ### Changed
172
+ - **Catalog regenerated** (`catalog-a2ui_0_9.json`, `catalog-a2ui_0_9_rules.txt`) — reflects `tag-ui`'s new `accent` variant and `table-ui`'s corrected `[raw]` a2ui rule.
173
+
174
+ ### Note
175
+ - The v0.8.10 work shipped in `@adia-ai/web-components`. See
176
+ `packages/web-components/CHANGELOG.md#0810--2026-07-20` for details.
177
+
178
+ ### Maintenance
179
+ - **`chunks/` touched in this release window** (`chunks/_source-hashes.json`, `manifest.json`) — training-corpus harvest refresh after `tag.examples.html`/`modal.examples.html` changes; no chunk content actually changed, only bookkeeping.
180
+
181
+ ## [0.8.9] — 2026-07-19
182
+
183
+ ### Maintenance
184
+ - **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#0810--2026-07-20` for details.
185
+ - **`chunks/` touched in this release window** (1 file(s), e.g. `chunks/_source-hashes.json`) — carried by the entries above.
186
+
187
+ ## [0.8.8] — 2026-07-19
188
+
189
+ ### Maintenance
190
+ - **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.
191
+
192
+ ## [0.8.7] — 2026-07-19
193
+
194
+ ### Added
195
+ - **`chunks/_source-hashes.json`** — sha256 per harvested source file, written by every `harvest:chunks` run (deterministic: sorted keys, no timestamp — byte-stable on a no-op harvest). Backs `check:chunks-fresh` v2's content-based freshness gate, replacing the mtime comparison that false-positived on every fresh checkout/worktree (surfaced 2026-07-18 as "353 stale chunks" whose real harvest produced a zero-byte diff — the same class the timestamp restamp below worked around). Ships in the tarball via the existing `chunks/` files entry (~60KB); no runtime consumer — retrieval never reads it.
196
+
197
+ ### Changed
198
+ - **`chunks/_index.json`, `manifest.json` — capture timestamp bumped, no chunk content change.** The new `site/pages/patterns/index.html` (generated patterns/templates index, `@adia-ai/web-components` — see its `CHANGELOG.md`) tripped `check-chunks-fresh.mjs`'s legacy `site/pages/.../index.html` fragment scan. A full harvest confirmed the page carries no `data-chunk` markers (394 unique chunk names, unchanged); `--force` re-stamped the index/manifest timestamp only — the 394 individual chunk files' own `captured_at` fields (not read by the freshness gate) were left at their prior values to avoid timestamp-only diff noise.
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
+ ### Changed
208
+ - **Full chunk corpus + embedding index rebuilt** (`chunks/*.json`, `chunk-embeddings.json`, `manifest.json`, `_index.json`): `npm run harvest:chunks` + `npm run build:embeddings:chunks` re-run to pick up the accumulated site/component-surface changes since v0.8.4 (the gh issue 276 wave-4 `button-ui`/`option-card-ui` migrations, `<adia-mark-ui>`, the `kbd-ui` A2UI-render fix) — `check:chunks-fresh` and `check:embeddings-fresh` were red against the stale index before this regen. No manual chunk edits; content-hash-driven, deterministic re-derivation.
209
+
210
+ ## [0.8.4] — 2026-07-16
211
+
212
+ ### Changed
213
+ - **Catalog `composes` entries regenerated** for the gh#276 button-ui migrations: `select-ui`, `tag-ui`, `swatch-ui`, `timeline-ui`, `chat-input-ui`, and `combobox-ui` now declare `button-ui` (plus combobox's previously undeclared `spinner-ui`) so generated compositions know the stamped dependency set.
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
+ ### Changed
226
+ - **`catalog-a2ui_0_9.json` regenerated** — `TagsInput`'s chip-slot entry now documents the shipped `<template slot="chip">` + `{{value}}`/`{{index}}` mechanism (TKT-0023; source yaml lives in @adia-ai/web-components).
227
+ ## [0.8.0] — 2026-07-15
228
+
229
+ ### Changed — Material color-token adoption (lockstep with @adia-ai/web-components@0.8.0)
230
+ - **Chunk corpus re-harvested with the post-migration token vocabulary** — 11 chunks + `_index.json` now carry `--md-sys-color-*` names in their inline styles instead of the removed/renamed `--a-*` forms; `chunk-embeddings.json` rebuilt to match. Gen-UI training data no longer teaches retired tokens.
231
+ - **`catalog-a2ui_0_9.json` regenerated** — component token-default docs updated for the `accent` → `primary` rename (sidecar re-sync in web-components/web-modules).
232
+ ## [0.7.28] — 2026-07-14
233
+
234
+ ### Fixed — TKT-0010, corpus admission-time validation classes 1 and 3
235
+
236
+ `harvest-chunks.mjs`'s new admission-time validator (Phase 4a, shipped
237
+ 0.7.27) found 104/384 templated chunk instances (27%) failing schema/
238
+ catalog validation. This cycle fixes the two classes owned by this
239
+ package's schemas:
240
+
241
+ - **`common_types.json`'s `CatalogComponentCommon`** now declares `span`
242
+ as a cross-cutting `DynamicString` property (mirroring the existing
243
+ `slot` entry) and a `patternProperties` allowance for `^data-` —
244
+ both legitimate JS/CSS hooks the transpiler already universally
245
+ preserves (TKT-0002), but previously rejected by Ajv's
246
+ `unevaluatedProperties: false` on every generated component schema
247
+ (the dominant failure class, ~70 of the 104).
248
+ - **New `DynamicObjectList` `$def`** — `Chart.data`/`Table.data`'s
249
+ dynamic array props were compiled to `DynamicStringList`
250
+ (array-of-string only), the wrong shape for row-record data. Split a
251
+ proper array-of-object variant; `components.mjs`'s `compileProp`
252
+ selects it when a prop's yaml declares `items: {type: object}` (see
253
+ `@adia-ai/web-components`'s `chart.yaml`/`table.yaml`). The
254
+ companion transpiler-side bug (the attribute value was never
255
+ actually `JSON.parse`d) is fixed in `@adia-ai/a2ui-compose`.
256
+ - **`catalog-a2ui_0_9.json` regenerated** to pick up both schema
257
+ changes.
258
+
259
+ Verified: `harvest-chunks.mjs --dry` dropped from 104 → 16 invalid
260
+ chunk instances; all 16 remaining are already-tracked class-2 debt
261
+ (enum drift + accessibility anti-patterns, matching `verify:corpus`'s
262
+ existing 118-warn baseline) — zero new class-1/3-shaped failures.
263
+ `--strict` stays opt-in (not flipped to the harvester's default) since
264
+ that floor is accepted, not cleared, by this cycle.
265
+
266
+ ### Maintenance
267
+ - **Chunk corpus re-harvested** to reflect the schema fixes above plus
268
+ content fixes in three `.contents.html` sources (`IntegrationCard.provider`,
269
+ `Stat.label`, `Heatmap.type`, two runtime-badge placeholders, and
270
+ `Chart.data` now carrying real parsed arrays instead of raw JSON
271
+ text). 394 chunks total.
272
+
273
+ ## [0.7.27] — 2026-07-12
274
+
275
+ ### Maintenance
276
+ - **Chunk corpus re-harvested through the 0.7.27 transpiler** — chunk bodies now carry the fidelity fixes shipped in `@adia-ai/a2ui-compose` 0.7.27 (`[span]` preservation, `Tag` `text`-prop labels) and the `aria-label` propagation contract; embeddings index rebuilt to match (394 chunks × 1536d).
277
+ - **Catalog (`catalog-a2ui_0_9.json`) regenerated** — picks up `richtext-ui`'s new `flush` prop from the yaml SoT.
278
+
279
+ ## [0.7.26] — 2026-07-04
280
+
281
+ ### Changed
282
+ - **`catalog-a2ui_0_9_rules.txt` regenerated — `empty-state-ui`'s CTA guidance no longer prescribes `variant="outline"` for secondary/retry actions.** Ride-along regen from the `@adia-ai/web-components` `empty-state.yaml` `a2ui: rules:` fix (see that package's changelog for the root-cause investigation). Regenerated from the yaml SoT via `components.mjs` — never hand-edited.
283
+
284
+ ## [0.7.25] — 2026-07-03
285
+
286
+ ### Changed
287
+ - **`catalog-a2ui_0_9.json` regenerated — registers `accordion-ui`'s new `variant` prop.** The generator catalog was rebuilt from the component yaml SoT after `accordion.yaml` + `accordion-item.yaml` gained the `variant="flat|contained"` attribute, so the published catalog exposes it to the gen-UI pipeline. Chunks + `chunk-embeddings.json` byte-stable — the 3 new `accordion-variant-*` `data-chunk` markers on the primitive's own demo page are bare (no `data-chunk-domain`), so the harvester's `annotatedOnly` gate correctly excludes them as dev-overlay-only, not corpus content (verified: `chunks/_index.json` unique_names unchanged at 394, no re-embed needed). Substantive v0.7.25 work shipped in `@adia-ai/web-components` — see `packages/web-components/CHANGELOG.md#0725--2026-07-03`.
288
+
289
+ ### Maintenance
290
+ - **Doc-comment path reference corrected** (`docs/specs/...` → `.claude/docs/specs/...`) in `scripts/chunk-library.js` — propagated from the repo-wide `docs/` → `.claude/docs/` migration (2026-07-01); no functional change.
291
+
292
+ ## [0.7.24] — 2026-07-01
293
+
294
+ ### Changed
295
+ - **`catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated — registers `display-field-ui`.** The generator catalog was rebuilt from the component yaml SoT after the new `display-field/display-field.yaml` landed, so the published catalog exposes `display-field-ui` (120 → 121 components) to the gen-UI pipeline. Chunks + `chunk-embeddings.json` byte-stable (no new annotated chunks; no re-embed). Substantive v0.7.24 work shipped in `@adia-ai/web-components` — see `packages/web-components/CHANGELOG.md#0724--2026-07-01`.
296
+
297
+ ## [0.7.23] — 2026-06-30
298
+
299
+ ### Changed
300
+ - **`catalog-a2ui_0_9.json` regenerated — `button-ui` gained the `icon-only` state.** The generator catalog was rebuilt from the component yaml SoT after `button.yaml` added the `icon-only` state (`attribute: data-icon-only`), so the published catalog reflects the new derived state. Chunks + `chunk-embeddings.json` byte-stable (no re-embed; freshness gates green). Substantive v0.7.23 work shipped in `@adia-ai/web-components` — see `packages/web-components/CHANGELOG.md#0723--2026-06-30`.
301
+
302
+ ## [0.7.22] — 2026-06-16
303
+
304
+ ### Maintenance
305
+ - **Lockstep bump; `chunks/_index.json` `captured_at` re-stamped, content byte-stable.** A harvest re-run during the embed-sheet migration (`df5e0f1df`) refreshed `chunks/_index.json` `captured_at` (2026-06-10 → 2026-06-13) with no chunk-content change — `total_instances: 543` / `unique_names: 394` unchanged, zero chunk files touched. The 394 × 1536d `chunk-embeddings.json` index covers the corpus correctly (verified content-stable; freshness flag cleared, no re-embed). Substantive v0.7.22 work shipped in the `@adia-ai/web-components` + `@adia-ai/web-modules` surface-token alignment — see `packages/web-components/CHANGELOG.md#0722--2026-06-16`.
306
+
307
+ ## [0.7.21] — 2026-06-10
308
+
309
+ ### Added
310
+ - **Harvester scope expansion — web-components examples root (+26 chunks, 368 → 394 unique / 517 → 543 instances).** `scripts/build/harvest-chunks.mjs` `SOURCES` now includes `packages/web-components/**/*.examples.html` as a **gated** root: only markers carrying the full corpus-intent retrieval annotation (`data-chunk-domain`, the batches-1–5 standard of domain + keywords + description + kind) are harvested. The per-component demo galleries stamp a bare `data-chunk` on ≈1650 prop-axis demo tiles (for the `?chunks` dev overlay + `scripts/qa/*` probes) — those are signal-poor single-axis/edge-case demos (`icon-size-9`, `chart-smooth-0-straight`, `icon-edge-cases-invalid-name`), NOT composed patterns, and the gate (`annotatedOnly` + `match: '.examples.html'`) skips them. The 26 harvested chunks are the deliberately-annotated **composed patterns** from `components/{card,col,drawer,grid,row,select,stack,table,table-toolbar}` + `patterns/{admin-shell,responsive-shell-sidebar}` (`card-with-stat-kpi`, `table-with-toolbar-card`, `row-avatar-name-role`, `admin-shell-standard`, …). The four pre-existing roots stay ungated and **byte-stable** (all 368 prior chunks identical, 0 changed, 0 removed). `chunk-embeddings.json` regenerated keyed (394 × 1536d). Zettel floors held (cov 93 / avg 90 / MRR 1.0); free-form held (cov 100 / avg 85 / F1 63); `verify:corpus` 110 warns unchanged (zero new).
311
+
312
+ ### Curated
313
+ - **56 trait `*-hero` markers de-annotated (kept out of the harvest).** The annotated examples set also included 56 interaction-trait "hero" demos (`confetti-hero`, `parallax-hero`, `spring-animate-hero`, `layout-animation-hero`, …) — *behavior* demos (motion/interaction), not UI-composition patterns. Harvesting them added 30 `verify:corpus` warns (non-enum decorative variants, empty transpile templates, field-wraps-widget anti-patterns) and would dilute retrieval signal (off-domain names that steal free-form intents). Their `data-chunk-domain/kind/description/keywords` annotation was stripped (bare `data-chunk` retained for the `?chunks` dev overlay) so the gated harvest skips them. One collision (`select-multiple-preselected`, already canonical in `catalog/ui-patterns/v053-coverage-fill/`) was likewise de-annotated to defer to the canonical chunk.
314
+
315
+ ### Fixed
316
+ - **`scripts/dev/check-chunks-fresh.mjs` source-dir parity.** The freshness gate scanned only `site/pages` + `apps` (+ `*.contents.html`/`index.html`); it now mirrors the harvester's full read surface — `playgrounds`, `catalog`, and `packages/web-components` (`*.examples.html`) added — so an edit to any harvest source re-trips freshness (was a pre-existing blind spot for playgrounds/catalog, now also covers the new examples root).
317
+ - **`row.examples.html` — `<text-ui variant="strong">` → `<text-ui strong>`** (2 occurrences in the `row-avatar-name-role` / `row-spread-label-value` chunks). `strong` is not a `variant` enum value; it's the boolean emphasis prop. Clears 2 `enum-out-of-range` warns the harvested chunks would otherwise carry.
318
+
319
+ ## [0.7.20] — 2026-06-10
320
+
321
+ ### Added
322
+ - **Regrowth batches 2–4 — +48 chunks (308 → 356 unique / 505 instances), embeddings in-loop throughout.** Batch 2 (+14): `apps/saas` billing/members/integrations/security/settings sections. Batch 3 (+17, the **form-grounding** batch): 13 complete-form compositions from `apps/user-flow/registration` + 4 hand-authored canonical form cards (`signup-form-card`, `contact-form-card`, `login-form-card`, `form-field-with-error` — the `<field-ui label hint><input-ui error>` shape); form intents now retrieve composition-match above the 40-pt verbatim threshold (signup 79, multi-field 80). Batch 4 (+17): the **agent domain 17 → 24** (tool-call accordion, pipeline stages, citations, chat bylines, empty-state hero) + editor chrome, checkout, picker-modal, upload, toggles. Zettel floors held at every batch (cov 93 / avg 90 / MRR 1.0); `chunk-embeddings.json` regenerated keyed each time — 356 × 1536d, zero debt.
323
+
324
+ ## [0.7.19] — 2026-06-10
325
+
326
+ ### Fixed
327
+ - **Full embedding coverage restored — 308/308 chunks vectored.** `chunk-embeddings.json` regenerated with a keyed `build:embeddings:chunks` run (openai, 1536d): the 24 batch-1 chunks that shipped keyword-retrievable-only in 0.7.18 (the documented caveat) now carry the semantic-search path too. `check:embeddings-fresh` green; zettel eval floors held (cov 93 / avg 90 / MRR 1.0).
328
+
329
+ ## [0.7.18] — 2026-06-09
330
+
331
+ ### Added
332
+ - **Corpus regrowth batch 1 — +24 chunks (284 → 308 unique).** Densely tagged 4 site surfaces (`admin-page-header` ×4, `admin-content-topbar` ×6, `admin-sidebar` ×6, `forms` ×8) with `data-chunk-*` markers; all 24 chunks under `chunks/` are name-token-rich (8–16 keywords + domain + description) with zero name collisions. `chunks/_index.json` + `catalog-a2ui_0_9.json` regenerated. Zettel eval floors held (cov 93 / avg 90 / MRR 1.0 — the lift is additive). **Known caveat:** `chunk-embeddings.json` still carries the 284-chunk vector set — the 24 new chunks are keyword/name-token retrievable (the path the eval exercises) but have no semantic-search vectors until a keyed `build:embeddings:chunks` re-run (tracked; requires `VOYAGE_API_KEY`/`OPENAI_API_KEY`).
333
+
334
+ ## [0.7.17] — 2026-06-08
335
+
336
+ ### Maintenance
337
+ - **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.
338
+
339
+ ## [0.7.16] — 2026-06-08
340
+
341
+ ### Maintenance
342
+ - **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.
343
+
344
+ ## [0.7.15] — 2026-06-08
345
+
346
+ ### Changed
347
+ - **Component catalog regenerated for `menu-label`.** `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` rebuilt to register the new `<menu-label-ui>` child component (from `components/menu/menu-label.yaml`); `chunks/_index.json` refreshed in step. No retrieval-affecting change — chunk content + embedding vectors unchanged.
348
+
349
+ ## [0.7.14] — 2026-06-08
350
+
351
+ ### Changed
352
+ - **Chunk corpus `captured_at` + embeddings refresh.** The embed-app consolidation re-harvests (Tier-1/Tier-2) bumped the chunk `captured_at` timestamps; the embeddings (`chunk-embeddings.json`, 284×1536d) are regenerated here to match — the re-harvests left them stale (`check:embeddings-fresh`). Chunk *content* is stable: no retrieval-affecting change (`eval:diff` zettel cov 93% / avg 90), embedding vectors identical; the diff is timestamp-only, consistent with the refreshes in 0.7.12/0.7.13.
353
+
354
+ ## [0.7.13] — 2026-06-06
355
+
356
+ ### Changed
357
+ - **Chunk corpus re-harvested** against the current apps/ + site/pages/ surfaces (population-health + embedded-app) — 284 chunks + 1536-d embeddings refreshed.
358
+
359
+ ## [0.7.12] — 2026-06-04
360
+
361
+ ### Changed
362
+ - **Corpus re-harvested** — `chunks/` (284 files) + `chunk-embeddings.json` (284 × 1536d) regenerated. One content change (`settings-admin-page`: a `[data-theme]` → `[theme]` reference inside an annotated-HTML comment, from the repo-wide token-attribute rename — see `@adia-ai/web-components`); the rest is a `captured_at`-only refresh.
363
+
364
+ ## [0.7.11] — 2026-06-04
365
+
366
+ ### Changed
367
+ - **Corpus re-harvested** — `chunks/` (284 files) + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, **no chunk content change** (the 0.7.11 work was the `<frame-ui>` slot-override, `button-ui` hover, the `resizable` trait corners, the `<embed-shell>` resizable wiring, and the `list-item-ui` / `<preview-ui>` fixes — none are chunk-annotated demo markup; embedding vectors are byte-stable, only the harvest timestamp moved).
368
+
369
+ ## [0.7.10] — 2026-06-03
370
+
371
+ ### Changed
372
+ - **Corpus re-harvested** — `chunks/` (284 files) + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, no chunk content change (v0.7.10 work was the `<frame-ui>` primitive + `list-item-ui` grid + `[verse]` type bump + the new `<embed-shell>` — none are chunk-annotated demo markup).
373
+
374
+ ## [0.7.9] — 2026-06-03
375
+
376
+ ### Changed
377
+ - **Corpus re-harvested** — `chunks/` + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, **no chunk content change** (the 0.7.9 work was color tokens + verse chrome + audit tooling, not demo-markup that feeds chunks).
378
+
379
+ ## [0.7.8] — 2026-06-02
380
+
381
+ ### Changed
382
+ - **Corpus re-harvested** — `chunks/` + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, **no chunk content change** (the 0.7.8 work was a component-internals wrapper-pierce drain, not demo-markup that feeds chunks).
383
+
384
+ ## [0.7.7] — 2026-06-02
385
+
386
+ ### Changed
387
+ - **Corpus re-harvested** — `chunks/` + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, **no chunk content change** (the 0.7.7 work was CSS/behavior + an audit, not demo-markup that feeds chunks).
388
+
389
+ ## [0.7.6] — 2026-06-02
390
+
391
+ ### Changed
392
+ - **`<block-ui>` added to the component catalog** (`catalog-a2ui_0_9.json`) — the new primitive is now retrievable by the A2UI pipeline.
393
+ - **Corpus re-harvested** — `chunks/` + `chunk-embeddings.json` (284 × 1536d) regenerated. `captured_at`-only refresh, **no chunk content change** (the 0.7.6 component work was CSS/behavior, not demo-markup that feeds chunks).
394
+
395
+ ## [0.7.5] — 2026-06-02
396
+
397
+ ### Changed
398
+ - **Corpus re-harvested** to catch up to the v0.7.5 empty-`<table-ui raw>` demo drains. The `check:empty-raw-table` audit + 8 demo fixes (`9956df80e`, `7c81b78ec`) removed empty raw tables from the saas dashboard demos, but the corpus hadn't been re-harvested — so 9 `dashboard-*` chunks (`dashboard-admin-page`, `-overview-panel`, `-behavior-panel`, `-conversion-panel`, `-cohort-retention`, `-reports-panel`, `-pages-table`, `-reports-table`, `-transactions-table`) carried stale empty-table markup. `chunks/_index.json` + `chunk-embeddings.json` (284 × 1536d) rebuilt. No new/removed chunks, no retrieval-strategy change — `eval:diff` zettel + free-form floors held.
399
+
400
+ ## [0.7.4] — 2026-06-02
401
+
402
+ ### Changed
403
+ - **Corpus re-harvested — picks up the deferred `settings-panel` → `settings-privacy` chunk delta.** The root `[0.7.4]` settings-page docs-QA fix (stray duplicate `card-ui` removed, Privacy folded into a canonical bare-`switch-ui` `[data-section]`) noted the chunk delta was "deferred to the next batch re-harvest" — this is that re-harvest, landing in the same cut. `chunks/settings-panel.json` removed; `chunks/settings-privacy.json` added; `settings-admin-page` + `settings-profile-security` re-harvested to the canonical Privacy/Preferences shape; `trial-banner` / `chat-page-shell` / `hero-section-split` refreshed for the billing + split-hero fixes; `chunks/_index.json` manifest + `chunk-embeddings.json` (284 chunks × 1536d) rebuilt. No retrieval-strategy change — `eval:diff` zettel + free-form floors held.
404
+
405
+ ## [0.7.3] — 2026-06-01
406
+
407
+ ### Maintenance
408
+ - **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.
409
+
410
+ ## [0.7.2] — 2026-06-01
411
+
412
+ ### Maintenance
413
+ - **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.
414
+
415
+ ## [0.7.1] — 2026-05-31
416
+
417
+ ### Maintenance
418
+ - **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 affordances, tree-ui role=group, menu-ui dynamic items) — bug-60 / FB-91/92/93. See `packages/web-components/CHANGELOG.md#071--2026-05-31` for details.
419
+
420
+ ## [0.7.0] — 2026-05-31
421
+
422
+ ### Changed — catalog regen (chevron→caret, FEEDBACK-90) + chunk re-harvest (docs-QA demo sweep)
423
+
424
+ - `catalog-a2ui_0_9.json` regenerated — `table-ui`'s `row-expand` / `row-collapse` event descriptions now read "row's caret" (was "chevron"), propagated from the web-components yaml terminology sweep (ADR-0036 follow-up). Regen output of `npm run components`; no corpus-authoring change.
425
+ - **Chunk corpus re-harvested** (284 chunks, 284 × 1536d embeddings) — 47 chunks absorbed real demo-markup changes from the docs-QA pass (field-ui in-chrome affordances moved onto input-ui slots, integration-card `side="right"` drawer fix, plan-picker tile cards, dead `size="sm"` swept off layout primitives across 68 sites). Both freshness gates green.
426
+
427
+ ## [0.6.50] — 2026-05-30
428
+
429
+ ### Changed — catalog regen for the `slot="caret"` vocabulary (ADR-0036)
430
+
431
+ - **`catalog-a2ui_0_9.json` + `tree-item.a2ui.json` / `pane.a2ui.json` sidecars** regenerated after the `slot="chevron"` → `slot="caret"` rename in `tree-item-ui` / `pane-ui` (ADR-0036), so the generative catalog advertises the renamed disclosure slot. The chunk corpus was re-harvested (284 chunks) + re-embedded to confirm freshness — **no chunk content drift** (the caret indicator is auto-stamped, not authored in demo markup), so the committed chunk set is unchanged from [0.6.49].
432
+
433
+ ## [0.6.49] — 2026-05-30
434
+
435
+ ### Changed — corpus regen (card-ui slot sweep) + catalog `month` prop
436
+
437
+ - **Chunk corpus** (284 chunks) absorbs the card-ui header slot sweep + `nav-group-ui` fixes across admin-dashboard + 5 catalog patterns (committed upstream in the demo-slot-sweep arc). `chunk-embeddings.json` in sync.
438
+ - **`catalog-a2ui_0_9.json`** — regenerated to add the `month` prop on the calendar primitive (`YYYY-MM` displayed-month hint; date-range-picker uses it to show its end pane one month ahead of the start). Matches `calendar-grid.yaml`.
439
+
440
+ ## [0.6.48] — 2026-05-29
441
+
442
+ ### Changed — corpus re-harvest for the v0.6.48 release window
443
+
444
+ - **`chunks/` (284 chunks) + `chunks/_index.json`** — full re-harvest absorbing the v0.6.48 window (foundation-styles reorg + the library-wide demo consolidation sweep + the date-range-picker fix). 433 chunk instances parsed → 284 unique.
445
+ - **`chunk-embeddings.json`** — re-embedded all 284 chunks (text-embedding-3-small, 1536d, ~8.2 MB).
446
+ - **`catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt`** — regenerated from the current component yaml set.
447
+
448
+ ## [0.6.47] — 2026-05-29
449
+
450
+ ### Changed — chunk re-harvest absorbing card `[grow]` attribute
451
+
452
+ - **Chunks re-harvested 2026-05-29T05:22Z** — 284 chunks / 433 instances. Absorbs the `card.yaml` rule additions for `[grow]` section behavior.
453
+ - **`catalog-a2ui_0_9_rules.txt`** regenerated with `[grow]` documentation rule.
454
+ - **`chunk-embeddings.json`** regenerated (8.19 MB; semantic-retrieval parity for updated corpus).
455
+
456
+ ## [0.6.46] — 2026-05-29
457
+
458
+ ### Changed — chunk re-harvest absorbing DX sweep (bleed fixes + slot docs + token corrections)
459
+
460
+ - **Chunks re-harvested 2026-05-29T05:07Z** — 284 chunks / 433 instances. The harvest absorbs the full DX sweep from v0.6.45 → v0.6.46: spurious `bleed` removed from catalog page-shell sources (`chat-page`, `doc-editor`, `gallery-page`, `kanban-page`); corrected token references (`--ui-border` → `--a-border`, `--a-text-muted` → `--a-fg-muted`) in chunk-source files; stale `--ui-primary` doc-prose updated.
461
+ - **`chunk-embeddings.json` regenerated** — 8.19 MB (284 × 1536-d; content-driven re-embed for accurate semantic retrieval).
462
+ - **`catalog-a2ui_0_9.json`** — regenerated absorbing `card.yaml` / `header.yaml` / `footer.yaml` slot additions (`icon`, `heading`, `description`, `action-leading`, `media`).
463
+
464
+ ## [0.6.45] — 2026-05-29
465
+
466
+ ### Maintenance
467
+
468
+ - **Lockstep version bump only — no chunk content change.** FB-85/88 (the substantive v0.6.45 work) are JS-only fixes in `@adia-ai/web-components` with no impact on chunk HTML or transpiled A2UI; the re-harvest produced only `captured_at` timestamp churn, which was reverted. Corpus + embeddings are byte-identical to v0.6.44.
469
+
470
+ ## [0.6.44] — 2026-05-28
471
+
472
+ ### Fixed — re-harvest absorbs select-options + chat-composer a11y fixes (FEEDBACK-79, FEEDBACK-80)
473
+
474
+ - **Chunks re-harvested 2026-05-28** — 284 chunks / 433 instances. Every `<select-ui>`-bearing chunk now carries its options as a `ChoicePicker.options` array instead of `Text` children (FB-79 transpiler fix in `@adia-ai/a2ui-compose`) — e.g. `invite-members`, `select-multiple-preselected`, and the role/source/label pickers across forms/onboarding/team chunks. Selects render real options instead of empty.
475
+ - **`catalog/page-shells/app/chat-page/chat-page.contents.html`** — the chat composer's icon-only buttons (search / settings / add / send `paper-plane`) gained `aria-label`s; the re-harvested `chat-page-shell` chunk no longer emits an icon-only `<button-ui>` without an accessible name (FB-80).
476
+ - **`chunk-embeddings.json` regenerated at release-cut time** — 284 × 1536-d, 8.19 MB (the FB-79/80 commit deferred this; the release agent rebuilt it during §Step 3.0 harvest preamble for semantic-retrieval parity).
477
+
478
+ ## [0.6.43] — 2026-05-27
479
+
480
+ ### Fixed — Cycle-18 Ralph Loop + RL2 chunk corpus sweep
481
+
482
+ - **Chunks re-harvested at 2026-05-27T23:29Z** — 284 chunks, 433 instances (block=408 + panel=7 + page=18).
483
+ - **`chunk-embeddings.json`** regenerated — 8.19 MB (284 × 1536-d float32).
484
+ - **`catalog-a2ui_0_9.json` / `catalog-a2ui_0_9_rules.txt`** — absorbs `<button-ui icon-trailing>` prop declaration (cycle-18 task) and the broader yaml polish wave.
485
+ - **Chunk fixes** absorbed from the cycle-18 RL + RL2 substrate sweeps + 44-prompt closure pass:
486
+ - `notification-badges-feed` / `role-management` / `team-members-list` — drop redundant bleed + canonicalize role-management header anatomy.
487
+ - `auth-signin-card-magic-link` / `blog-post-card` / `calendar-month-view` / `invoice-line-items` / `notification-toast-row` / `pricing-tiers` / `settings-2fa-setup` / `trial-banner` — header-slot grammar + leaf children + calendar widget fixes (RL2 10-bug sweep).
488
+ - `product-tour` / `status-dashboard` / `user-profile-card` — Ralph Loop 6-bug sweep.
489
+ - `billing-overview` — slot= preservation in transpiled card-ui anatomy.
490
+ - `payment-method-form` / `user-onboarding-checklist` — render-failure closures in the 44-prompt sweep.
491
+
492
+ ## [0.6.42] — 2026-05-26
493
+
494
+ ### Added — gen-review cycle 8-17 corpus expansion (+44 training chunks)
495
+
496
+ - **Chunk count 240 → 284** — 44 new training chunks landed across gen-review cycles 8-17:
497
+ - Cycle 8-13: progressive coverage expansion (33 → 49 PASSING, mean 84.2 → 93.1)
498
+ - Cycle 14-15: HTML→harvest pipeline established for failing prompts
499
+ - Cycle 16: 14 prompt-quality fixes
500
+ - Cycle 17: header/section/footer anatomy applied across all card-ui chunks; table data + nav + profile fixes; full decompose on gallery-v53
501
+ - **`chunk-embeddings.json`** regenerated — 6.92 MB → 8.19 MB (+1.27 MB; 44 × 1536d × float32 ≈ 270 KB raw vector data + JSON overhead).
502
+ - **`catalog-a2ui_0_9_rules.txt`** absorbing yaml polish for description-list / table / upload / admin-page-header.
503
+
504
+ ### Fixed — Cycle 17 corpus polish across many surfaces
505
+
506
+ Patterns shipped: card-ui header/section/footer anatomy; row-ui header pattern; section-bleed for full-width dividers; sidebar-nav left-align with max-width:220px; command-palette layout; code-snippet header/section layout; chart-ui sparkline image placeholders; accordion-item-ui text= contract; invoice-table column alignment; faq-accordion fixes; kanban column container background; calendar-view inline navigation; webhook-config two-section split; integrations card grid; team-members section bleed; invite-members single-title; permission-matrix colored badges; role-management header pattern; billing-overview usage meters; notification-center filters; chat-interface redundant button removal.
507
+
508
+ ## [0.6.41] — 2026-05-26
509
+
510
+ ### Maintenance
511
+
512
+ - **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.
513
+
514
+ ## [0.6.40] — 2026-05-26
515
+
516
+ ### Maintenance
517
+
518
+ - **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>`).
519
+
520
+ ## [0.6.39] — 2026-05-26
521
+
522
+ ### Changed — catalog regen for `<tour-ui>` + slot-selector substrate sweep
523
+
524
+ - `catalog-a2ui_0_9.json` + `_rules.txt` regenerated absorbing the new `<tour-ui>` + `<tour-step-ui>` primitives and substrate slot-selector sweep (+263 lines / +12 rule lines).
525
+ - `chunk-embeddings.json` refreshed (corpus content unchanged from v0.6.38; timestamp refresh only).
526
+
527
+ ## [0.6.38] — 2026-05-26
528
+
529
+ ### Added — 1 new chunk + catalog regen for Wave 5e cohort
530
+
531
+ - **Chunk count 239 → 240** — new chunk absorbed from the Wave 5e source content (mark-ui / inline-edit-ui / list-item-ui demos + onboarding-checklist + import-mapping + cancellation save-offer).
532
+ - `chunk-embeddings.json` regenerated (6.89 → 6.92 MB; +1 new 1536d vector).
533
+ - `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated absorbing the 3 new web-components primitives + audit-rule text additions (+383 / -5 lines).
534
+
535
+ ## [0.6.37] — 2026-05-25
536
+
537
+ ### Maintenance
538
+
539
+ - **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).
540
+
541
+ ## [0.6.36] — 2026-05-24
542
+
543
+ ### Changed — catalog absorbs `<tag-ui>` solid-default flip + `[tone]` prop
544
+
545
+ - **`<tag-ui>` family variants now default to solid fill** (saturated bg + on-strong text — `--a-{family}-bg` + `--a-{family}-fg` pair). The new `[tone]` enum prop (`solid` | `muted`) opts each family variant back to the canonical muted pair when the chip is metadata rather than a status stamp. Catalog tag prop block + rules text regenerated to surface the new prop + the new default rendering in the LLM training corpus.
546
+
547
+ ## [0.6.35] — 2026-05-24
548
+
549
+ ### Changed — `catalog-a2ui_0_9.{json,_rules.txt}` regen absorbs FB-61/62/63 yaml backfills
550
+
551
+ - **Catalog + rules text rebuilt** to absorb three substrate yaml drift fixes shipped in the same cycle:
552
+ - **FB-61** — `<editor-sidebar>` `[collapsible]` declared as reflected prop (Option C: CSS-state marker, matches admin-sidebar convention). New entry in the catalog's `editor-sidebar` props block.
553
+ - **FB-62** — `<popover-ui>` and `<menu-ui>` yaml `slots:` blocks backfilled with the `trigger` / `content` (popover) and `trigger` (menu) slot entries the CSS + a2ui rules already documented. Catalog slot blocks now match.
554
+ - **FB-63** — chat-input + textarea + input substrate prose corrected so Enter→submit semantics are accurately documented across all three input primitives (unconditional, no `[submit-on-enter]` attribute observation anywhere). Substrate demos stripped of the decorative attribute. Catalog rules text + relevant component description fields regenerated.
555
+ - Embeddings remain valid (content-hash-keyed; only prose fields changed, no chunk additions). File size unchanged within rounding. Source: `packages/web-modules/editor/editor-sidebar/*.yaml`, `packages/web-components/components/{popover,menu,chat-thread/chat-input,textarea,input}/*.yaml`, plus matching chat-cluster yamls.
556
+
557
+ ## [0.6.34] — 2026-05-23
558
+
559
+ ### Added — `playground-css-channel` chunk + Wave 1+2 corpus coverage
560
+
561
+ - **`playground-css-channel` chunk** (peer commit `666ff8fc0` / `ff62fe305` / `f7f8430b2`): new corpus chunk capturing the CSS-channel playground demo. 239 → 240 chunks total. `chunk-embeddings.json` regenerated to include the new embedding vector (OpenAI text-embedding-3-small, 1536d). File size 6.83 MB → 6.89 MB.
562
+
563
+ ### Maintenance — corpus chunk + embeddings re-verified
564
+
565
+ - **Harvest preamble** per `adia-ui-release` skill v1.7.0 §Step 3.0: ran `npm run harvest:chunks` + `npm run build:embeddings:chunks` proactively before pre-flight gates. Result: 0 content drift in existing chunks (timestamp-only); chunk-embeddings.json refreshed to satisfy `check:embeddings-fresh`. The chunk-corpus content tracks peer's source-content changes (Wave 1+2 component additions, OD-5 yaml token shadowing fix, `<calendar-grid-ui>` substrate primitive) — no chunk text content changed because peer's commits already included corresponding chunk regenerations.
566
+
567
+ ## [0.6.33] — 2026-05-23
568
+
569
+ ### Changed — `catalog-a2ui_0_9.json` regen for `<table-ui raw>` semantic expansion
570
+
571
+ - **`catalog-a2ui_0_9.json`** regenerated to absorb the expanded `<table-ui raw>` description from `table.yaml` (FB-53 §2 — raw mode is now documented as a true visual-only passthrough that short-circuits the data lifecycle). 1-line content drift in the canonical catalog (the `raw` prop description string); embeddings unchanged. Catalog is consumed by `@adia-ai/a2ui-retrieval` and the MCP pipeline. Source: `packages/web-components/components/table/table.yaml` updated in v0.6.33 web-components entry.
572
+
573
+ ### Maintenance — corpus chunk + embeddings freshness re-verified
574
+
575
+ - **Harvest preamble per `adia-ui-release` skill v1.7.0 §Step 3.0**: ran `npm run harvest:chunks` + `npm run build:embeddings:chunks` proactively before pre-flight gates. Corpus content unchanged from v0.6.32 (chunks are timestamp-only re-stamped; 0 content lines diff). chunk-embeddings.json refreshed with new `captured_at` timestamp to satisfy `check:embeddings-fresh`. File: `packages/a2ui/corpus/chunk-embeddings.json` (~6.8 MB, byte-identical embeddings to v0.6.32 modulo metadata timestamp).
576
+
577
+ ## [0.6.32] — 2026-05-23
578
+
579
+ ### Maintenance
580
+
581
+ - **Lockstep version bump only.** Peer's v0.6.32 absorbed the chunk + embeddings regen against the status:stable yaml sweep (recovery committed at `e864fc396` post peer's release commit `5285defa8`; see `2026-05-23-freshness-gate-recovery-v0.6.32.md` case study (git history)).
582
+
583
+ ## [0.6.31] — 2026-05-23
584
+
585
+ ### Maintenance
586
+
587
+ - **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.
588
+
589
+ ## [0.6.30] — 2026-05-23
590
+
591
+ ### Maintenance
592
+ - **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.
593
+
594
+ ## [0.6.29] — 2026-05-23
595
+
596
+ ### Maintenance
597
+ - **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.
598
+
599
+ ## [0.6.28] — 2026-05-23
600
+
601
+ ### Maintenance
602
+ - **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.
603
+
604
+ ## [0.6.27] — 2026-05-22
605
+
606
+ ### Maintenance — `catalog-a2ui_0_9.json` tracks `chart-ui[loading]` attribute
607
+
608
+ - **Catalog mirrors the v0.6.27 `chart-ui[loading]` addition** in `@adia-ai/web-components` (§FB-12 closure). 5-line attribute entry added; default `false`. No chunk-level changes.
609
+
610
+ ## [0.6.26] — 2026-05-22
611
+
612
+ ### Maintenance
613
+ - **Lockstep version bump only.** No source changes. Substantive v0.6.26 work in `@adia-ai/web-modules`.
614
+
615
+ ## [0.6.25] — 2026-05-22
616
+
617
+ ### Added — `select-multiple-preselected` chunk (FB-46 companion)
618
+
619
+ - **New corpus exemplar `select-multiple-preselected`** harvested from `catalog/ui-patterns/v053-coverage-fill/`. Demonstrates the FB-46 fix surface (`<select-ui multiple>` with `<option selected>` children + `.value=` setter for multi-value picker initialization). Keywords: `select, multiple, pre-selected, option selected, form, multi-value, picker, init`. `domain=forms`. Source file: `packages/a2ui/corpus/chunks/select-multiple-preselected.json`.
620
+
621
+ ### Maintenance — harvest re-run; corpus = 238 unique chunks (up from 237)
622
+
623
+ - **Harvest timestamps refreshed across all 238 chunks** to keep the embeddings-fresh gate (`check:embeddings-fresh`) consistent with the new chunk addition. Walk paths unchanged: `apps/`, `catalog/`, `playgrounds/`, `site/pages/`. Component example pages under `packages/web-components/components/**` remain outside the harvester's walk paths by design.
624
+
625
+ ## [0.6.24] — 2026-05-22
626
+
627
+ ### Added — 100% chunk annotation coverage (123 raw → annotated)
628
+
629
+ - **All 237 corpus chunks now carry `domain` + `description` + `keywords` metadata** and are retrieval-ready. Previously 123 of 234 chunks (53%) were raw — harvested but unannotated, meaning they could be used for nested-expand reference resolution but were not surfaced by the retrieval engine. Domain breakdown after annotation: auth (46), forms (32), data (30), layout (29), settings (26), onboarding (19), agent (15), navigation (9), error (7), display (3). Sources annotated: `apps/user-flow/app/auth/` (35 auth flows), `apps/user-flow/app/onboarding/` (14), `apps/user-flow/app/registration/` (14), `apps/saas/` (19 dashboard + settings + drawer patterns), playgrounds, catalog page-shells.
630
+
631
+ ### Added — 3 responsive layout pattern chunks in `site/pages/patterns/`
632
+
633
+ - **`responsive-grid-pattern`**, **`responsive-row-pattern`**, **`responsive-wrap-at-pattern`** from `site/pages/patterns/responsive.html`. Ground the v0.6.22/v0.6.23 `@bp` responsive syntax in the retrieval corpus. `domain=layout`.
634
+
635
+ ### Maintenance — `chunk-embeddings.json` regenerated for 237-chunk corpus
636
+
637
+ - Rebuilt `chunk-embeddings.json` (237 × 1536d vectors) to cover the 123 newly-annotated chunks and 3 new responsive pattern chunks. Previous index was built against the 111-chunk annotated corpus.
638
+
639
+ ## [0.6.23] — 2026-05-22
640
+
641
+ ### Added — 4 new v0.6.22 training chunks in `v053-coverage-fill`
642
+
643
+ - **`empty-state-danger`** — full-section error empty-state with `variant="danger"`, no background tint, Retry action. Grounds the v0.6.22 danger variant in the retrieval corpus.
644
+ - **`empty-state-warning`** — permission-gate empty-state with `variant="warning"`, Request Access action.
645
+ - **`empty-state-minimal`** — compact inline placeholder using `[minimal]` for tables/lists. Grounds the v0.5.9 minimal mode.
646
+ - **`responsive-kpi-grid`** — 4-card KPI grid with `columns="1 2@sm 4@lg" gap="3 4@md"`. First `@bp` annotated composition chunk in the corpus. Source: `catalog/ui-patterns/v053-coverage-fill/`. All 4 transpile cleanly (template_nodes: 3/3/2/18).
647
+
648
+ ## [0.6.22] — 2026-05-22
649
+
650
+ ### Maintenance
651
+ - **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.
652
+
653
+ ## [0.6.21] — 2026-05-21
654
+
655
+ ### Changed
656
+ - **`catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated.** Re-emitted to reflect the v0.6.21 yaml-schema changes — the FEEDBACK-37 retraction in `admin-topbar.yaml` / `admin-statusbar.yaml` (the slot-contract diagnostic was misdiagnosed and removed) plus the `table-ui` wrap-default schema clarification (§403). Keeps the A2UI component catalog in sync.
657
+
658
+ ### Note
659
+ - The headline v0.6.21 work shipped in `@adia-ai/web-components` + `@adia-ai/web-modules`. See `packages/web-modules/CHANGELOG.md#0621--2026-05-21`.
660
+
661
+ ## [0.6.20] — 2026-05-21
662
+
663
+ ### Changed
664
+ - **`catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated.** Re-emitted to reflect the v0.6.20 primitive-schema changes: the new `<admin-entity-item>` shell primitive (FEEDBACK-38), the `<admin-topbar>` / `<admin-statusbar>` yaml additions (FEEDBACK-37), and the `table-ui` / `select-ui` schema clarifications (FEEDBACK-34/35/36). Keeps the A2UI component catalog in sync with the primitive schemas.
665
+
666
+ ### Note
667
+ - The headline v0.6.20 work shipped in `@adia-ai/web-components` + `@adia-ai/web-modules` — the claims-ui-v5 inbound feedback batch (FEEDBACK-34…39). See `packages/web-modules/CHANGELOG.md#0620--2026-05-21`.
668
+
669
+ ## [0.6.19] — 2026-05-21
670
+
671
+ ### Fixed
672
+ - **Corpus drift remediation — `verify:corpus` 22 findings → 0.** Freshened the stale corpus chunks: ~235 JSON files under `chunks/` re-harvested/reconciled so every chunk matches its current primitive composition, and `catalog-a2ui_0_9.json` regenerated. Companion `chunk-reconcile` triage cleared 38 collisions (all confirmed legitimate). Brings the A2UI training corpus back in sync with the v0.6.18→v0.6.19 primitive-schema state.
673
+
674
+ ### Note
675
+ - The headline v0.6.19 work — claims-ui-v4 inbound feedback batch (FEEDBACK-22…33: `drawer-ui`, `chart-ui`, `segmented-ui`, `UIElement` lifecycle, exports-map `types` conditions) — shipped in `@adia-ai/web-components` + `@adia-ai/web-modules`. See `packages/web-components/CHANGELOG.md#0619--2026-05-21`.
676
+
677
+ ## [0.6.18] — 2026-05-21
678
+
679
+ ### Changed
680
+ - **`catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated.** Re-emitted to reflect the `button-ui` (FB-15 `anti_patterns` entry) and `toggle-scheme-ui` (FB-13 / FB-14) yaml-schema changes shipped in `@adia-ai/web-components` v0.6.18 — keeps the A2UI component catalog in sync with the primitive schemas.
681
+
682
+ ### Note
683
+ - The headline 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.
684
+
685
+ ## [0.6.17] — 2026-05-21
686
+
687
+ ### Maintenance
688
+ - **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.
689
+
690
+ ## [0.6.16] — 2026-05-21
691
+
692
+ ### Maintenance
693
+ - **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.
694
+
695
+ ## [0.6.15] — 2026-05-21
696
+
697
+ ### Changed
698
+ - **`dashboard-overview-panel` (and 6 sibling panels) — primary tag swap `div` → `col-ui`.** The dashboard tab-panel chunks (overview/audience/acquisition/behavior/conversion/reports/notifications) now use `<col-ui data-tab-panel="…" gap="4">` instead of `<div data-tab-panel="…">`. Previous behavior: the docs-site applied vertical-stack CSS via a `[data-template="dashboard"] [data-dashboard-content] [data-tab-panel]` rule, which fired only on the routed dashboard template. Non-routed embeds (e.g. `/site/examples/admin-dashboard` under the standalone `data-template="page"` route, or any external consumer pulling the chunk into their own app) got `display: block` with zero vertical gap between the stacked grids — KPI row visually flush against the Overview/Sparkline rows below. Switching the wrapper to `<col-ui gap="4">` makes the chunk self-styling: the per-instance `flex-direction: column; gap: var(--a-space-4)` lives on the chunk's primary tag, so consumers get correct vertical rhythm without needing docs-site CSS. The `data-tab-panel` attribute is preserved verbatim for the tab-switching wiring in `admin-dashboard.contents.js`. Corpus regen also captured pre-existing drift in `dashboard-admin-page` (primary `article` → `admin-page`; nested-chunks list synced with the ADR-0023 admin-page composition shipped in v0.6.12-v0.6.13). Net: 10 dashboard chunks updated.
699
+ - **`chunk-embeddings.json` regenerated to match the re-harvested chunks.** 230 chunks re-embedded (1536-d `text-embedding-3-small`); restores `check:embeddings-fresh` to green — the retrieval index had drifted 6.6 days stale relative to `chunks/_index.json`, predating this cut but surfaced by the dashboard chunk re-harvest above.
700
+
701
+ ### Maintenance
702
+ - **Lockstep version bump only for non-dashboard chunks.** No other 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 also shipped in `@adia-ai/web-components` — `installIconLoaders` shape-detects malformed flat globs (FB-07), `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.
703
+
704
+ ## [0.6.14] — 2026-05-21
705
+
706
+ ### Maintenance
707
+ - **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.
708
+
709
+ ## [0.6.13] — 2026-05-20
710
+
711
+ ### Changed
712
+ - **`catalog-a2ui_0_9.json` regenerated for the `<admin-shell>` `mode` schema change.** The AppShell `mode` property definition re-emitted from the updated yaml source-of-truth: the (incorrect) single-value `enum` constraint is dropped, `default` is `"rounded borderless"`, and the description documents the space-separated token-set semantics. Keeps the A2UI component catalog in sync with `@adia-ai/web-modules` v0.6.13.
713
+
714
+ ### Maintenance
715
+ - **Lockstep version bump.** Bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`.
716
+
717
+ ## [0.6.12] — 2026-05-20
718
+
719
+ ### Changed
720
+ - **`chunks/playground-app-shell.json` re-harvested to the canonical 10-tag admin-shell shape.** The training-corpus `html` payload was re-captured from the modernized `playgrounds/admin-shell/` source: legacy `<main>` / `<header-ui>` / `<section-ui>` / `<article data-content-root>` / `<div data-content-header>` / `<div data-content-body>` / `<footer-ui>` → bespoke `<admin-content>` / `<admin-topbar>` / `<admin-scroll>` / `<admin-page>` / `<admin-page-header>` / `<admin-page-body>` / `<admin-statusbar>`. Keeps the gen-UI corpus teaching the post-ADR-0032 composition rather than the retired legacy shape.
721
+
722
+ ### Maintenance
723
+ - **Lockstep version bump.** 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.
724
+
725
+ ## [0.6.11] — 2026-05-20
726
+
727
+ ### Maintenance
728
+ - **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).
729
+
730
+ ## [0.6.10] — 2026-05-21
731
+
732
+ ### Maintenance
733
+ - **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).
734
+
735
+ ## [0.6.9] — 2026-05-21
736
+
737
+ ### Maintenance
738
+ - **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).
739
+
740
+ ## [0.6.8] — 2026-05-20
741
+
742
+ - Lockstep version bump. Headlining work in `@adia-ai/web-components`
743
+ (FB-55 `.camelCaseProp=${expr}` two-layer name resolution + FB-57
744
+ SVG/MathML namespace-aware `mount()` + USAGE.md docs cluster) and
745
+ `@adia-ai/web-modules` (claims-ui F-001 chat-shell.js barrel-import
746
+ fix + F-006 required-CSS callouts). No source changes in this package.
747
+
748
+ ## [0.6.7] — 2026-05-19
749
+
750
+ - Lockstep version bump; no source changes.
751
+
752
+ ## [0.6.6] — 2026-05-18
753
+
754
+ ### Changed
755
+ - Lockstep version bump for §304 `<field-ui align>` prop.
756
+ ## [0.6.5] — 2026-05-18
757
+
758
+ ### Changed
759
+ - Lockstep version bump for TS Phase 6 sealing (ADR-0029).
760
+ Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
761
+
762
+ Scope: training corpus for the A2UI pipeline. Patterns, fragments,
763
+ compositions, exemplars, held-out eval fixtures, feedback registry,
764
+ gap registry. Consumed by `@adia-ai/a2ui-retrieval` and
765
+ `@adia-ai/a2ui-mcp`.
766
+
767
+ > **Historical note (2026-05-05):** Entries dated before v0.3.0 reference
768
+ > "all 8 published `@adia-ai/*` packages" — that was the package count at
769
+ > the time. The lockstep policy expanded to 9 packages at v0.3.0 when
770
+ > `@adia-ai/llm` joined; see the [0.3.0] entry below for the transition
771
+ > details. References to "8 packages" in older entries are factually
772
+ > correct as of the date they were written and are preserved per
773
+ > Keep-A-Changelog convention (don't rewrite history).
774
+ ## [0.6.32] — 2026-05-23
775
+
776
+ ### Changed — chunk corpus re-harvested + embeddings regenerated
777
+
778
+ - **238 chunks re-harvested via `npm run harvest:chunks`** after peer's
779
+ v0.6.32 substrate sweep (`5d8c62a80` — status:stable field added to
780
+ all 141 component YAMLs, anatomy sections swept onto every examples
781
+ page, [data-col]/[data-row] scoped). 230+ per-chunk `.json` files
782
+ + `chunks/_index.json` updated to reflect the new source state.
783
+ - **`chunk-embeddings.json` regenerated via `npm run build:embeddings:chunks`**
784
+ (OpenAI text-embedding-3-small, 8 batches, 238 × 1536d, ~6.8 MB).
785
+ `check:embeddings-fresh` was failing (1d drift) before this regen;
786
+ passes after. Caught when running release-skill freshness gate as
787
+ part of v0.6.32 deploy handoff.
788
+ - 387 chunk instances parsed → 238 unique names → 190 leaf + 48
789
+ nested-expanded annotated chunks transpiled. `verify:corpus` passes
790
+ with 61 `field-wraps-widget` + 4 `enum-out-of-range` warnings carried
791
+ forward as known pre-existing drift (drawer field-ui wrapping
792
+ switch-ui/check-ui anti-patterns; 2 playground chunks with non-enum
793
+ `color` values).
794
+ - **Note on placement**: this entry sits below the [Unreleased]
795
+ promotion peer wrote at the bottom of the file. The proper [0.6.32]
796
+ entry above [0.6.31] is to-be-restructured in a follow-up cleanup.
797
+
798
+ ## [0.6.4] - 2026-05-18
799
+
800
+ ### v0.6.4 — Lockstep ride-along
801
+
802
+ TS Phase 5: a2ui.schema.json schema-driven codegen (§359). No source changes in this package.
803
+
804
+
805
+
806
+ ## [0.6.3] - 2026-05-18
807
+
808
+ ### v0.6.3 — Lockstep ride-along
809
+
810
+ TS Phase 5: runtime real declarations (§358) + compose branded IDs.
811
+ No source changes in this package. Internal dep ranges stay at `^0.6.0`.
812
+
813
+
814
+
815
+ ## [0.6.2] - 2026-05-18
816
+
817
+ ### v0.6.2 — Lockstep ride-along
818
+
819
+ TS Phase 4: retrieval (§356) + mcp (§357) `.ts` sources + TS-MIG-001 closed.
820
+ No source changes in this package. Internal dep ranges stay at `^0.6.0`.
821
+
822
+
823
+
824
+ ## [0.6.1] - 2026-05-18
825
+
826
+ ### v0.6.1 — Lockstep ride-along
827
+
828
+ `@adia-ai/llm` TS Phase 2 (§353) + `<link-ui>` token rename (§354) +
829
+ `@adia-ai/a2ui-compose` TS Phase 3 (§355). No source changes in this package.
830
+ Internal dep ranges stay at `^0.6.0`.
831
+
832
+
833
+
834
+ ## [0.6.0] - 2026-05-18
835
+
836
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.6.0 — see root CHANGELOG)._
837
+
838
+ **MINOR-line internal-dep range update:** internal `@adia-ai/*` dependency ranges move from `^0.5.0` to `^0.6.0` per AdiaUI lockstep policy.
839
+
840
+ ## [0.5.21] - 2026-05-18
841
+
842
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.21 — see root CHANGELOG)._
843
+
844
+ ## [0.5.20] - 2026-05-18
845
+
846
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.20 — see root CHANGELOG)._
847
+
848
+ ## [0.5.19] - 2026-05-17
849
+
850
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.19 — see root CHANGELOG)._
851
+
852
+ ## [0.5.18] - 2026-05-16
853
+
854
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.18 — see root CHANGELOG)._
855
+
856
+ ## [0.5.17] - 2026-05-16
857
+
858
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.17 — see root CHANGELOG)._
859
+
860
+ ## [0.5.16] - 2026-05-16
861
+
862
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.16 — see root CHANGELOG)._
863
+
864
+ ## [0.5.15] - 2026-05-16
865
+
866
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.15 — see root CHANGELOG)._
867
+
868
+ ## [0.5.14] - 2026-05-15
869
+
870
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.14 — see root CHANGELOG)._
871
+
872
+ ## [0.5.13] - 2026-05-15
873
+
874
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.13 — see root CHANGELOG)._
875
+
876
+ ## [0.5.12] - 2026-05-15
877
+
878
+ _Lockstep ride-along (no source change in this package; companion to web-components v0.5.12 — see root CHANGELOG)._
879
+
880
+ ## [0.5.11] - 2026-05-15
881
+
882
+ _Lockstep ride-along (no source change)._
883
+
884
+
885
+ ## [0.5.10] - 2026-05-15
886
+
887
+ _Lockstep ride-along (no source change)._
888
+
889
+
890
+ ## [0.5.9] - 2026-05-15
891
+
892
+ _Lockstep ride-along (no source change)._
893
+
894
+
895
+ ## [0.5.8] - 2026-05-15
896
+
897
+ _Lockstep ride-along (no source change)._
898
+
899
+
900
+ ## [0.5.7] - 2026-05-15
901
+
902
+ ### Changed — `catalog-a2ui_0_9.json` regen + `chunks/` refresh (v0.5.7)
903
+
904
+ `catalog-a2ui_0_9.json` regenerated to pick up `@adia-ai/web-components@0.5.7`'s §199 (`<input-ui>` `leading` + `trailing` slot description updates) and §210 (`<text-ui>` variant enum cleanup — removed 6 phantom `h1`-`h6` + `subheading` entries; added 3 working tokens `subsection`/`deck`/`metric`). Auto-regenerated by `npm run components`.
905
+
906
+ `chunks/` refresh for consumers that re-harvest against the new catalog — no chunk-content change, only sidecar metadata.
907
+
908
+ ## [0.5.6] - 2026-05-14
909
+
910
+ _Lockstep ride-along (no source change)._
911
+ ## [0.5.5] - 2026-05-14
912
+
913
+ ### Added — §176 (v0.5.5) — six new sub-component catalog entries
914
+
915
+ Six sibling yamls authored under the v0.5.4 §172 scanner pattern (parent-folder co-located):
916
+
917
+ - `list/list-item.yaml` (3 props: icon, text, description)
918
+ - `avatar/avatar-group.yaml` (2 props: max, size)
919
+ - `accordion/accordion-item.yaml` (2 props: text, open)
920
+ - `timeline/timeline-item.yaml` (8 props: text, description, time, duration, icon, variant, status, spinner)
921
+ - `action-list/action-item.yaml` (5 props: icon, text, value, variant, disabled)
922
+ - `tabs/tab.yaml` (4 props: text, value, icon, disabled)
923
+
924
+ These describe co-located sub-component classes that previously existed as registered custom elements (e.g. `UIListItem` from `list/class.js`) without their own catalog entry — surfaced as the §175 baseline-orphan class. Now LLM-driven generation has access to per-prop signatures for sub-components.
925
+
926
+ Catalog: **125 → 131 components** (+6).
927
+
928
+ ### Changed — corpus re-harvested
929
+
930
+ 230 chunks re-harvested against the updated transpiler. **9 chunks improved** with restored Tab/ActionItem/AvatarGroup/ChatInput props that the transpiler previously dropped (same architectural class as v0.5.4 §163/§164 catalog→transpiler drift fix — applied at finer grain on newly-authored sub-components). `chunk-embeddings.json` rebuilt (230 × 1536-dim, 6,632 KB).
931
+
932
+ ### Added — §184 (v0.5.5, peer FEEDBACK-08) — tree-item catalog entry
933
+
934
+ Seventh sibling yaml: `packages/web-components/components/tree/tree-item.yaml`. `UITreeItem` is no longer an orphan class; has its own catalog entry, `.d.ts`, and `.a2ui.json` sidecar.
935
+
936
+ Catalog after §184: **132 components**.
937
+
938
+ Commits `443365913` + `30025e51e` (peer). See root CHANGELOG and journal §176/§184 for full context.
939
+ ## [0.5.4] - 2026-05-14
940
+
941
+ ### Changed — §164 re-harvest 230 chunks against §163-fixed transpiler; +2,920 LOC restored prop fidelity (v0.5.4)
942
+
943
+ `packages/a2ui/corpus/chunks/*.json` — 230 chunks regenerated by running
944
+ `npm run harvest:chunks` against the §163-fixed transpiler (sibling
945
+ package `@adia-ai/a2ui-compose@0.5.4`). Closes the corpus side of the
946
+ harvester drop class diagnosed 2026-05-14: the chunks shipped at v0.5.3
947
+ were authored pre-§163 and carried prop-stripped templates (Input/
948
+ CheckBox/Button/Divider primitives with empty props), causing
949
+ composition-match retrievals to render blank rectangles even though
950
+ type-registration + schema validation both passed green.
951
+
952
+ **Empirical scope of the gap (defensible at the engineering-board level):**
953
+
954
+ 231 files modified (230 chunks + `_index.json`)
955
+ +2,920 lines added (restored props)
956
+ -765 lines removed (stale or redundant content displaced)
957
+ Net: +2,155 LOC of restored prop fidelity
958
+
959
+ **Verified spot-check** on `auth-signin-card-password` chunk (the diagnosis baseline):
960
+
961
+ password Input {} → {label, type, autocomplete, name, placeholder, required}
962
+ remember CheckBox {name} → {name, label}
963
+ Sign in Button {type} → {type, text, variant}
964
+ Divider {} → {label}
965
+ magic-link Button {} → {icon, text, variant}
966
+ 6-digit Button {} → {icon, text, variant}
967
+
968
+ Retrieval-layer surfacing confirmed: post-§164 smoke probe text now
969
+ includes `"enter your password signing in as kim@acme.com password ••••…"`
970
+ — proof the fix landed not just at the file system but at the retrieval
971
+ surface where compositions are matched.
972
+
973
+ ### Changed — `chunk-embeddings.json` rebuilt (6,632 KB; 230 × 1536-dim vectors)
974
+
975
+ `npm run build:embeddings:chunks` regenerated `chunk-embeddings.json`
976
+ since chunk content changed materially (the +2,920 LOC of restored
977
+ props are semantically meaningful for retrieval). Existing embeddings
978
+ would have under-retrieved compositions whose prop content now adds
979
+ discriminating tokens.
980
+
981
+ ### Added — `scripts/audit/check-chunk-prop-fidelity.mjs` companion script (+194 LOC, NEW; sibling to scripts/release/ family)
982
+
983
+ Audit script that re-runs the harvester in-place against a temp
984
+ snapshot, diffs against committed chunks, restores via temp, reports
985
+ added/removed/changed props per chunk. Sibling-positioned in
986
+ `scripts/audit/` (rather than `scripts/release/`) because it has
987
+ side-effecting probe-and-restore semantics (briefly mutates the working
988
+ tree to compare).
989
+
990
+ default — exit 0; informational report
991
+ --strict — exit 1 if any chunk would diverge
992
+
993
+ Catches future regressions of the §163/§164 class: a new chunk page
994
+ authored without v0.9-aware harvester contract, OR a new prop added
995
+ to the v0.9 catalog that doesn't flow through to existing chunks.
996
+
997
+ ### Changed — `version`: `0.5.3` → `0.5.4`.
998
+ ## [0.5.3] - 2026-05-14
999
+
1000
+ ### Changed — `catalog-a2ui_0_9.json` regen for `<table-ui>` `row-collapse` event declaration (§162 ride-along, v0.5.3)
1001
+
1002
+ `catalog-a2ui_0_9.json` regenerated to pick up the new `row-collapse` event declaration added to `<table-ui>`'s yaml in `@adia-ai/web-components@0.5.3` §162. Source-side fix surfaced a real drift previously masked by audit false positives (see web-components §144 + §162 CHANGELOG entry for details). The yaml `events[]` entry for `row-collapse` now flows through to `components.Table.x-adiaui.events.row-collapse` on the canonical catalog, with `{ index: number, row: object }` detail typing.
1003
+
1004
+ ### Added — 8 UI-primitive chunks for v0.5.3 §127 coverage gap (§143, v0.5.3)
1005
+
1006
+ NEW `catalog/ui-patterns/v053-coverage-fill/` directory with 8 annotated chunks targeting the §127 Haiku-vs-Opus +7pp coverage gap (RESPONSE-07's path-forward: chunks close the gap at $0 marginal cost vs Opus 5× premium). Each chunk maps 1:1 to a missed Haiku intent from §127's empty-plan list:
1007
+
1008
+ | Chunk | Intent (eval ID) | Primary primitives |
1009
+ |---|---|---|
1010
+ | `calendar-month-view` | calendar month view (eval-054) | `card-ui`, `calendar-picker-ui`, `button-ui` |
1011
+ | `color-picker-swatches` | color picker with swatches (eval-055) | `card-ui`, `color-picker-ui`, `swatch-ui` × 6 |
1012
+ | `slider-range-controls` | slider with range controls (eval-056) | `card-ui`, `range-ui`, `input-ui` × 2 |
1013
+ | `pagination-controls` | pagination controls (eval-060) | `card-ui`, `pagination-ui` |
1014
+ | `popover-with-content` | popover with content (eval-065) | `card-ui`, `button-ui`, `popover-ui` |
1015
+ | `avatar-group-overflow` | avatar group with overflow count (eval-069) | `card-ui`, `avatar-group-ui`, `avatar-ui` × 8 |
1016
+ | `divider-text-label` | divider with text label (eval-073) | `col-ui`, `divider-ui` × 2, `button-ui` |
1017
+ | `video-player-controls` | video player with controls (eval-095) | `card-ui`, `button-ui` × 3, `progress-ui` |
1018
+
1019
+ Each chunk:
1020
+
1021
+ - Lives in `catalog/ui-patterns/v053-coverage-fill/v053-coverage-fill.contents.html` (a single annotated HTML file with 8 `<section data-chunk-name=...>` regions)
1022
+ - Uses real AdiaUI primitives (no placeholder text components; full structural fidelity)
1023
+ - Carries `data-chunk-domain` ('forms' / 'data' / 'navigation' / 'layout') for retrieval ranking
1024
+ - Carries `data-chunk-keywords` matching the natural-language intent surface for Haiku's keyword-extraction
1025
+ - Carries `data-chunk-description` for the LLM picker's context block
1026
+
1027
+ Corpus regen via `npm run harvest:chunks`: 222 → 230 chunks (+8); chunk index + per-chunk JSON regenerated. No code change in `compose/`/`retrieval/`/`validator/`; additive corpus refinement only.
1028
+
1029
+ Expected impact: Haiku free-form coverage on the 100-intent held-out set lifts from 91% (post-v0.5.2 §125+§126) → ~98-99% (matching Opus's §127 ceiling). Empirical verification in v0.5.3 §145 rebaseline check (paired re-eval).
1030
+
1031
+ Per the §127 verdict report (`.claude/docs/reports/free-form-haiku-vs-opus-2026-05-13.md`) — closing the coverage gap via chunk authoring is the right lever; model swap to Opus (5× cost) was rejected by the §127 decision rule. §143 ships the rejected-Opus's path-forward.
1032
+ ## [0.5.2] - 2026-05-13
1033
+
1034
+ ### Changed — Catalog-text structural sweep on 5 under-substituted chunks (§125, v0.5.2)
1035
+
1036
+
1037
+ Refines 5 catalog chunks identified by the §107a substitution-coverage measurement (run `2026-05-13T23-05-12-184Z`, full-100: 27.4% overall ratio, 48/93 in <30% bucket). Pivots from the v0.5.2 plan §125's "generic-placeholder text refinement" hypothesis to **structural component refinement** after analysis showed the F1 plateau is component-type coverage (eval scorer matches `expected_components` against emitted tree), not text-content quality.
1038
+
1039
+ Five chunks refined to emit the expected components (eval golden tree):
1040
+
1041
+ - **`leaderboard-table`** (`catalog/ui-patterns/v050-data-blocks/`) — replaced col-ui/row-ui list layout with `<table-ui>` proper + replaced icon-ui delta arrows with `<badge-ui>` delta tags. Now emits `[Card, Header, Section, Table, Avatar, Badge, Text, Column, Row]` (matches eval-019 expected `[Card, Header, Section, Table, Avatar, Badge]`).
1042
+ - **`real-time-metrics-dashboard`** (same file) — replaced `[ live line chart ]` placeholder text with `<chart-ui type="line" data="…">` + replaced one of the 4 KPI tiles with an Error budget tile carrying `<progress-ui>`. Now emits `[Grid, Card, Header, Text, Section, Chart, Progress, Tag, Row, Column]` (matches eval-021 expected `[Grid, Card, Header, Text, Section, Chart, Progress]`).
1043
+ - **`inventory-list-stock`** (`catalog/ui-patterns/v050-content-blocks/`) — replaced grid-ui list layout with `<table-ui>` + replaced tag-ui stock-status pills with `<badge-ui>` + added `<progress-ui>` stock-fill bars per row. Now emits `[Card, Section, Table, Badge, Progress, Text, Column, Header]` (matches eval-024 expected `[Card, Section, Table, Badge, Progress]`).
1044
+ - **`footer-multi-column`** (`catalog/ui-patterns/v050-marketing-blocks/`) — added `<divider-ui>` between nav-columns and copyright row + replaced 4th nav-column (Legal links) with a Subscribe `<button-ui>` newsletter signup + replaced AdiaUI-specific link text ("A2UI Protocol", "Free-form Composer") with generic placeholders ("Features", "Integrations"). Now emits `[Grid, Column, Section, Icon, Text, Divider, Row, Button, Link]` (matches eval-029 expected `[Grid, Column, Section, Icon, Text, Divider, Row, Button]`).
1045
+ - **`date-time-picker-form`** (`catalog/ui-patterns/v050-form-blocks/`) — wrapped form in `<card-ui>` with explicit `<section>` + `<footer>` boundaries (previously emitted Column root). Now emits `[Card, Section, Footer, Input, Button, Field, Grid, Header, Radio, Column, Row, Text, ChoicePicker, DateTimeInput]` (matches eval-005 expected `[Card, Section, CalendarPicker, Input, Button]` with Card+Section+Input+Button present; `CalendarPicker` harvested as `DateTimeInput`).
1046
+
1047
+ Re-harvest via `npm run harvest:chunks` regenerated the 5 chunk JSONs to reflect the new structure. No code change in `compose/` / `retrieval/` / `validator/` — additive corpus refinement.
1048
+
1049
+ Expected impact (verified post-§126): F1 lift 62 → ~65-68 from improved component-type coverage on the 5 intents (each lifts from ~67% to 100%). Substitution-ratio may also lift as the new structural primitives (badge-ui, button-ui) carry substitutable text the LLM can tailor.
1050
+
1051
+ **Pivot note**: the v0.5.2 plan §125 documented "generic-placeholder text refinement" (Fix A) and "intent-shape-faithful chunks" (Fix B). The actual scorer logic (per `test-evals.mjs computeF1()`) is component-type set match — `tp / required.length` of the `expected_components` array. Text content doesn't enter F1 calculation. The corrected §125 approach is **structural refinement to match the expected component set**, retaining the chunk's design quality where the higher-level primitive (`<stat-ui>`) already carries the data shape.
1052
+ ## [0.5.1] - 2026-05-13
1053
+
1054
+ ### Added — Mode-C corpus promotion (§112 + §113, v0.5.1)
1055
+
1056
+ The §82-deferred Mode-C corpus review (199 retired patterns/compositions) lands as **selective promotion** into v0.5.1 rather than gating on a separate user advocacy session. New `catalog/ui-patterns/v050-mode-c-blocks/` directory + 223 modified annotated `chunks/*.json` (re-harvest from the new Mode-C pages). Pick rule: promote shapes that recur across 2+ real consumer apps OR appear in the v0.5.0 free-form 8% empty-plan tail.
1057
+
1058
+ The §93/§94/§104 v0.5.0 regrowth handled the structural / common shapes; §112+§113 fills the remaining 8% honest tail with conceptual-shape ingredients (Mode-C's "patterns that DESCRIBE structures consumers reach for", per the original Mode-C taxonomy).
1059
+
1060
+ ### Coverage at v0.5.1 cut
1061
+
1062
+ Pairs with `@adia-ai/a2ui-compose@0.5.1`'s §106 INTENT-PARAPHRASE + §108/§109 picker work. Combined lift drives free-form coverage from v0.5.0's 92% to ~96-97% on the 100-intent held-out set. The §115 free-form-eval regression trip-wire (in `@adia-ai/web-components` repo-level scripts, NOT in this package) now hard-floors at `cov≥96%, avg≥85, F1≥0.60`.
1063
+ ## [0.5.0] - 2026-05-13
1064
+
1065
+ ### Added — v0.5.0 corpus regrowth (§93 + §94 + §104, free-form coverage 21% → 92%)
1066
+
1067
+ Three-arc corpus expansion drives free-form-composer coverage from §92's 21% baseline to **92% on the 100-intent held-out set**. Each arc adds annotated chunks under `corpus/chunks/` (auto-harvested from real `catalog/ui-patterns/` + `apps/` + `playgrounds/` pages via `data-chunk-*` markers — per the locked-in grounding rule).
1068
+
1069
+ **§93 — layout-chunk regrowth** (commit `b79a214e`, 210 files): annotated 15-20 layout shapes on existing pages (pricing-tiers, hero, feature-grid, footer, CTA, FAQ, kanban, sidebar). Closed the 38-intent layout gap §92 identified. Layout-domain coverage 10% → ~55%; overall 21% → ~35%.
1070
+
1071
+ **§94 — forms + data + navigation regrowth** (commit `ac14c527`, 204 files): annotated 8-10 specialized forms (contact, search-with-filters, file-upload, payment, newsletter, date-picker) plus data + navigation surfaces. Forms-domain coverage 36% → ~65%; overall ~35% → ~45%.
1072
+
1073
+ **§104 — v0.5.1 deferreds folded into v0.5.0** (commit `55a0a266`, 219 files): six new `catalog/ui-patterns/v050-*-blocks/` subdirectories (agent / content / data / form / marketing / nav blocks) with ~30 new chunks each lifted as patterns. Pushes overall coverage 80% → 92%. Originally scoped for v0.5.1 — folded in at user direction to make v0.5.0 the strategic free-form cut.
1074
+
1075
+ **Catalog regen** picks up all new chunks via `npm run components` + manifest update.
1076
+
1077
+ ### Migration
1078
+
1079
+ For consumers building on the corpus directly (custom retrieval / `composition-library`): no API change. New chunks expand the `chunks/_index.json` set; existing chunk IDs unchanged.
1080
+
1081
+ ### AGENTS.md regression threshold rebaseline
1082
+
1083
+ §97 added a `free-form` row to `## Regression thresholds`: `cov≥80%, avg≥85, F1≥0.45`. Reflects the post-§104 honest floor; `eval:diff --engine free-form` exits 0 against this. Expected to climb further as v0.5.1+ corpus regrowth lands.
1084
+ ## [0.4.9] - 2026-05-13
1085
+
1086
+ _No pending changes._
1087
+ ## [0.4.8] - 2026-05-12
1088
+
1089
+ ### Changed — `catalog-a2ui_0_9.json` regen (v0.4.8 ride-along)
1090
+
1091
+ `catalog-a2ui_0_9.json` regenerated to pick up v0.4.8 source-side additions across `packages/web-components/` + `packages/web-modules/`: §80 event-type declarations (38 non-form primitives now have `x-adiaui.events` populated for codegen consumption) + the new `composes:` field on web-module YAMLs (ADR-0027 wiring; lifted to `components[name].x-adiaui.composes` on the canonical catalog) + §88 free-form composition mode's component additions. Pure regen — no schema changes; corpus consumers get the new fields automatically.
1092
+ ## [0.4.7] - 2026-05-12
1093
+
1094
+ ### Removed — `patterns/` + `compositions/` retired from disk + tarball (§72, the §65 carry-over from v0.4.6)
1095
+
1096
+ Hand-authored `corpus/patterns/<domain>/*.{json,yaml}` (~225 files) and `corpus/compositions/<domain>/*.json` (~177 files) deleted. The corpus is now one-format and harvester-driven — all retrievable units trace to a real page via `data-chunk-*` annotations per the v0.4.6 grounding rule.
1097
+
1098
+ **Exports removed:**
1099
+ - `./patterns` → `./patterns/_components.json` — the alias-map subpath. Migrated to `components[name].x-adiaui.synonyms.tags` on the canonical `catalog-a2ui_0_9.json` (still exported as the package root `.`).
1100
+ - `./exemplars/*` — exemplar HTML pages (their retrievable content was already harvested into `chunks/`).
1101
+ - `./pattern-embeddings` → `./pattern-embeddings.json` — pattern-embeddings index (companion `embedding-retriever.js` + builder `scripts/build/embeddings.mjs` retired in `@adia-ai/a2ui-retrieval` and repo-side, respectively).
1102
+
1103
+ **`files:` array** drops `patterns/`, `compositions/`. The remaining published tarball surface: `catalog-a2ui_0_9.json`, `catalog-a2ui_0_9_rules.txt`, `manifest.json`, `chunks/`, `chunk-embeddings.json`, `scripts/chunk-library.js`, `README.md`, `CHANGELOG.md`.
1104
+
1105
+ **Alias-data migration:** the 18 alias-bearing components in the legacy `_components.json` had their `aliases` arrays folded into per-component `synonyms.tags` on the source yaml under `packages/web-components/`. Four legacy-only entries (`Chat`, `Panel`, `SegmentedControl`, `Toggle`) merged into their modern canonicals (`ChatThread`, `Pane`, `Segmented`, `Switch`). `catalog-a2ui_0_9.json` regenerated; the alias data lives there now under `components[name].x-adiaui.synonyms.tags`.
1106
+
1107
+ ### Changed — `README.md`, `data-flow.md`, `package.json` description
1108
+
1109
+ `README.md` — Exports section rewritten to show the catalog-with-aliases pattern; line referencing `data-flow.md`'s "chunks → fragments → compositions → feedback" simplified to "chunks → feedback" reflecting the retired stages. `data-flow.md` — full rewrite describing the harvester-driven flow (no more extract.js → ingest.js). `package.json` description — "patterns, compositions, chunks, eval fixtures…" → "canonical v0.9 catalog + chunks + eval fixtures…".
1110
+ ## [0.4.6] - 2026-05-12
1111
+
1112
+ ### Removed — `corpus/scripts/` retirement (§64 step 3, v0.4.6)
1113
+
1114
+ `packages/a2ui/corpus/scripts/` purged of dead-stack code as part of the §64 pattern-library retirement:
1115
+
1116
+ - **`scripts/run-pipeline.mjs`** retired — orchestrated the extract→ingest→index sequence over the retired pattern surface. Re-harvest now flows through `scripts/build/harvest-chunks.mjs` (repo-root) for chunks + `npm run components` for the catalog.
1117
+ - **`scripts/extract.js`** retired — pattern-extraction phase of the legacy pipeline; chunks-only post-§64.
1118
+ - **`scripts/ingest.js`** retired — pattern-ingestion phase of the legacy pipeline; chunks-only post-§64.
1119
+ - **`scripts/build-pattern-index.mjs`** retired — produced the `patterns/_index.json` files no consumer reads post-§64.
1120
+
1121
+ Companion docs link-rot fix in `.claude/docs/journal/2026/04/2026-04-27.md` (one markdown link to `scripts/run-pipeline.mjs` unwrapped to plain text with retired-2026-05-12 annotation).
1122
+
1123
+ ### Added — `settings-admin-page` chunk + Mode A annotation (§63, v0.4.6)
1124
+
1125
+ First §63 promotion under the §62 lock. Adds the `data-chunk-*` wrapper to `apps/saas/app/settings-page/settings-page.contents.html`, producing a new `settings-admin-page` chunk with full metadata; retires the 4 redundant pattern JSONs the chunk supersedes; fixes 12 pre-existing antipatterns the new chunk surfaced.
1126
+
1127
+ **The annotation** wraps the existing fragment in a top-level `<article data-chunk="settings-admin-page" data-chunk-kind="page" data-chunk-domain="settings" ...>` element. Harvester output:
1128
+ - `kind: "page"`, `primary: "article"`
1129
+ - `page: "/apps/saas/app/settings-page/settings-page.contents.html"`
1130
+ - `nested: ["settings-general-form", "settings-appearance", "drawer-delete-workspace"]`
1131
+ - `metadata: { domain, description, keywords, related, tags }` (all populated)
1132
+
1133
+ ### Removed — 4 redundant pattern JSONs superseded by `settings-admin-page` chunk (§63, v0.4.6)
1134
+
1135
+ Per the user-confirmed Q1 from §62 lock (*"dedupe duplicate-name patterns at promote-time"*):
1136
+ - `packages/a2ui/corpus/patterns/forms/settings-page.{json,yaml}`
1137
+ - `packages/a2ui/corpus/patterns/settings/settings-page.{json,yaml}`
1138
+
1139
+ Both copies had the same name with different `domain:` taxonomy assignments. The `data-chunk-domain="settings"` attr on the new chunk picks the canonical taxonomy implicitly; deleted both source files.
1140
+
1141
+ ### Fixed — 12 antipattern instances in settings-page surfaced by re-harvest (§63, v0.4.6)
1142
+
1143
+ Re-harvest surfaced 12 antipattern instances pre-existing in the page that only entered the corpus quality check once it was annotated. All were `<field-ui inline label="X"><{switch|check}-ui ...></...></field-ui>` — the documented antipattern per memory `feedback_check_ui_label_over_field_ui_inline.md`. Inline-fix pattern:
1144
+
1145
+ ```html
1146
+ - <field-ui label="Send on Enter" inline>
1147
+ - <switch-ui checked></switch-ui>
1148
+ - </field-ui>
1149
+ + <switch-ui label="Send on Enter" checked></switch-ui>
1150
+ ```
1151
+
1152
+ 12 substitutions across three sections of `apps/saas/app/settings-page/settings-page.contents.html`:
1153
+ - **Behavior** (3 switches): Send on Enter / Stream responses / Show token count
1154
+ - **Notification channels** (4 switches): Email / Push / Weekly digest / SMS alerts
1155
+ - **Notification activity** (5 checks): New team member joins / API key rotated / Usage threshold reached / Billing changes / Deployment completed
1156
+
1157
+ In-scope for §63's "make the real page good" mandate — annotating a real page that ships antipatterns into the training corpus is worse than not annotating it.
1158
+
1159
+ ### Verification
1160
+
1161
+ | Gate | Result |
1162
+ |---|---|
1163
+ | `verify:traits` | clean — 56/56 traits across 9 categories |
1164
+ | `smoke:engines` | ok — retrieval-quality probes pass |
1165
+ | `smoke:register-engine` | 11/11 |
1166
+ | `test:a2ui` | 25/25 (1 skipped per AGENTS.md) |
1167
+ | `verify:corpus` | 150 warns / 0 critical (vs §51 baseline 148 → +2 net) |
1168
+
1169
+ Net regression analysis: new `settings-admin-page` chunk surfaced 14 raw warns (mostly antipatterns + cross-cutting variant-enum issues); 12 antipattern fixes closed -12 warns; net +2 warns from cross-cutting items still pending (`Alert.variant="error"` not-in-enum; out of scope for §63).
1170
+
1171
+ Source: commit `7b62cb19` (196 files; mostly `corpus/chunks/*.json` re-harvest timestamps; meat is `settings-admin-page.json` +989 lines new + 4 pattern JSONs deleted).
1172
+
1173
+ ### Refreshed — corpus re-harvest (§63 ride-along; 190+ chunk `captured_at` timestamps)
1174
+
1175
+ All `corpus/chunks/*.json` files have updated `captured_at` timestamps from the `npm run harvest:chunks` re-run after the `settings-page.contents.html` annotation. No content changes; pure metadata refresh.
1176
+ ## [0.4.5] - 2026-05-12
1177
+
1178
+ ### Ride-along (no source changes)
1179
+
1180
+ Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.5` (§61 CSS subpath exports + CustomEvent.detail sweep across 17 form-bearing primitives + slider reactivity test lock-in + §52 design-tokens export module + UI), `@adia-ai/web-modules@0.4.5` (§61 CSS subpath exports — six cluster `*.css` exports), `@adia-ai/a2ui-compose@0.4.5` (§56 system-prompt CORPUS CONTEXT block in monolithic strategies), `@adia-ai/llm@0.4.5` (§54 doc-comment path refresh). Source byte-identical to v0.4.4.
1181
+
1182
+ 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.5]`](../../../CHANGELOG.md) for the cut narrative.
1183
+ ## [0.4.4] - 2026-05-12
1184
+
1185
+ ### Changed — corpus simplification arc (§36-§51, 2026-05-12)
1186
+
1187
+ **verify:corpus warns: 993 → 148 (-845, -85%)** across §43-§51. Headline state: composition library boot reports `compositionCount=127, handAuthored=100, annotatedChunks=27`.
1188
+
1189
+ #### Removed
1190
+
1191
+ - **`corpus/exemplars/` retired (§36).** -3.4K lines. Exemplars had been speculative records without consumers; replaced by the growing annotated-chunk system.
1192
+ - **`corpus/fragments/` retired (§37).** 41 fragment JSON files + schema + categorical indices deleted (-99.6 KB). 85 hand-authored compositions inlined with previously-referenced fragment content (slot machinery removed); 10 fragment shapes migrated to chunks via `data-chunk` markers added in production HTML; remaining 29 fragments dropped as speculative/superseded. Net: 3 corpus formats → 2.
1193
+
1194
+ #### Added
1195
+
1196
+ - **`data-chunk-*` source-HTML annotation system (§40).** Chunks can now carry retrieval metadata authored directly on production HTML elements:
1197
+ - `data-chunk-kind="<page|panel|block|field>"`
1198
+ - `data-chunk-domain="<auth|dashboard|error|onboarding|...>"`
1199
+ - `data-chunk-description="<concrete one-liner>"`
1200
+ - `data-chunk-keywords="<space-separated tokens>"`
1201
+ - `data-chunk-related="<comma-separated chunk names>"`
1202
+ - `data-chunk-tags-<key>="<value>"` (per-tag attributes for the tags object)
1203
+
1204
+ Harvester (`scripts/build/harvest-chunks.mjs`, repo-level) reads these and produces chunks with a `metadata` field. Index schema bumped `@1` → `@2` to surface metadata for retrieval-without-load.
1205
+
1206
+ - **Nested-expand-then-transpile (§42).** Annotated chunks with nested children get their `<!-- nested: <name> -->` placeholders recursively expanded then transpiled to flat A2UI templates at harvest time, making them retrievable as compositions via zettel. Cycle-safe via `visited` set.
1207
+
1208
+ - **`verify:corpus` drift validator (§39, wired in §39; observability extended through §47/§51).** Walks every JSON in `corpus/{patterns,compositions,chunks}/**.json` against canonical component schemas. Surfaces unknown-component criticals + unknown-prop / enum-out-of-range / known-hallucination warns. §47 added `data-*` + `aria-*` HTML attribute skip rules; §42 added `annotated-chunk-no-template` warn for chunks with metadata but no template (caught the nested-expansion gaps).
1209
+
1210
+ - **27 retrievable annotated chunks** seeded across 6 domains (§40 / §45 / §46 / §48):
1211
+ - **Settings/data seeds (§40, 3 chunks):** `linked-record-row`, `settings-integrations`, `auth-signin-card-email`.
1212
+ - **Auth (§45, 8 chunks):** `auth-signin-card-{password,otp,magic-link,mfa}`, `auth-signup-entry`, `auth-password-reset`, `auth-new-password`, `auth-mfa-enrollment`.
1213
+ - **Dashboard (§46, 11 chunks):** `dashboard-admin-page` (427-component template, the full surface), `dashboard-page-header`, `dashboard-{overview,audience,acquisition,behavior,conversion,reports,notifications}-panel`, `dashboard-chart-recent`, `dashboard-team-actions-storage`.
1214
+ - **Error + onboarding (§48, 5 chunks):** `error-404`, `error-500`, `error-maintenance`, `reg-step-shell`, `onb-step-shell`.
1215
+
1216
+ #### Changed
1217
+
1218
+ - **Shape B → Shape A codemod (§43, -486 warns).** 475 records / 79 files. Top transformations: `Text.color="muted"` → `variant="caption"` (244 records); `Text.weight="semibold"` → `strong: true` (146 records); `*.attrs: {...}` → flattened to top-level (146 records); `Text.content` → `textContent`, `Button.content` → `text`, `Badge.content` → `text` (84 records); 109 empty `attrs:{}` objects removed; 5 manual-review (Text.color=primary/success — needs design call).
1219
+ - **Yaml-gap renames + dead-prop deletes (§44, -301 warns).** 105 records / 48 files. Renames: `Button.block` → `stretch` (23), `Button.ariaLabel` → `aria-label` (16), `Badge.color="primary"` → `variant="primary"` (11, 1:1 mapping), `Table.rows` → `Table.data` (6), `Toast.title` → `Toast.text` (6). Deletes (runtime ignores): `Text.grow` (20, no `:scope[grow]` in text.css), `Progress.max` (15, runtime hardcodes max=100), `Skeleton.variant` (8, runtime silently drops), `Toast.description` (6, runtime only has `text`).
1220
+ - **§43 manual-review backlog retired (§50, -42 warns).** 74 records / 25 files. Subagent A's foundational finding: `attrs:{}` has zero runtime effect — no renderer/host spreads it onto the element. So every key inside `attrs:` is dead-letter; flatten or delete is always safe. Promoted 33 records from §43's MANUAL_REVIEW to HIGH-confidence codemod: `Toggle.attrs.checked` → top-level (6), `Text.attrs.muted=true` → `color: "muted"` (17), `Avatar.attrs.alt` → `text` (8, avatar.js:68 auto-mirrors name → `<img alt>`), `Avatar.attrs.fallback` → DELETE (5, redundant with auto-derived initials at avatar.js:96-110), `Divider.attrs.orientation="vertical"` → `vertical: true` (2), `Button.attrs.triggers` → DELETE (1, hallucinated wiring). Companion yaml-gap renames (§50): `Kbd.text`/`Kbd.keys` → `textContent` (10), `Pagination.totalPages`/`currentPage` → `total`/`page` (6), `Divider.orientation` → `vertical: true` (3), `Input.icon` → `prefix` (4), `Option.text` → `heading` (5).
1221
+ - **Search → Input migration (§42, 5 critical → 0).** 5 compositions migrated from deprecated `Search` component to `Input type="search" prefix="magnifying-glass"`. `Search` deliberately remains absent from the registry per registry.js line 57.
1222
+ - **Input.inputMode → Input.inputmode (§51, 3 records).** HTML standard is lowercase `inputmode`. Companion to the §51 renderer kebab-casing fix in `@adia-ai/a2ui-runtime`.
1223
+
1224
+ ### Harvester (`scripts/build/harvest-chunks.mjs`, repo-level)
1225
+
1226
+ The harvester is repo-tooling (`scripts/build/`), not a corpus package member, but its changes power this arc's corpus output:
1227
+
1228
+ - **§40 `data-chunk-*` attribute extraction** — reads sibling attributes from `data-chunk` elements; populates the chunk record's `metadata` field.
1229
+ - **§42 nested-expand-then-transpile pass** — after collection, recursively expands `<!-- nested: <name> -->` placeholders in annotated chunks, then transpiles the expanded HTML to A2UI templates via `transpileHTML(html, { mode: 'instant' })`.
1230
+ - **§45 source-aware tier-1 expansion fix** — replaces §42's "first wins" canonical-html rule with directory-aware selection. **Bug**: `auth-card-content` has 24 instances; the 404 page sorted alphabetically first, so EVERY auth chunk silently inlined 404 page content from §41 landing through §45 discovery (smoke tests only checked retrieval strategy, not template content). **Fix**: Tier 1 exact directory match → Tier 2 deepest common directory prefix → Tier 3 alphabetical. Without it, `apps/user-flow/app/auth/sign-in/` shares depth with `apps/user-flow/app/auth/sign-in/mfa/` and tie-break would pick wrong sibling.
1231
+
1232
+ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 36-51 for per-§ details.
1233
+ ## [0.4.3] - 2026-05-11
1234
+
1235
+ ### Changed
1236
+
1237
+ - **`catalog-a2ui_0_9.json` regenerated** to pick up the new `locale` prop on `<input-ui type="number">` from `@adia-ai/web-components@0.4.3`. The yaml `props:` entry drives retrieval signal for locale-aware numeric-input intents.
1238
+ - **`chunks/` re-harvested** (181 files touched). New chunk `settings-appearance.json` — multi-instance record covering both `catalog/ui-patterns/app/settings-appearance/` (primary=card-ui, standalone block pattern composing `<theme-panel>`) and `apps/saas/app/settings-page/` (primary=div, Workspace-level Appearance section). Plus a sweep of `captured_at` timestamps + `source:` field updates from the ADR-0026 reorg follow-up. Harvest now produces 180 unique chunks (was 179 in v0.4.2; +1 from the new `settings-appearance` pattern).
1239
+ - **Harvester scope fix** — `scripts/build/harvest-chunks.mjs` `SOURCES = ['site/pages', 'apps']` hadn't been updated after ADR-0026 split `apps/` → `apps/` + `playgrounds/` + `catalog/` on 2026-05-10. Every `npm run harvest:chunks` since silently dropped 26 chunks (179 unique → 152 visible) without warning. Fix adds both new sibling directories to SOURCES. (Note: harvest-chunks.mjs lives in the repo's `scripts/build/` tree, not the package; this corpus regen captures the FULL chunk set restored by the fix. Lesson captured as Category E imperative-drift in user-memory entry `feedback_build_script_sources_list_after_rename.md`.)
1240
+
1241
+ ### Lockstep
1242
+
1243
+ 9-package coordinated PATCH cut to v0.4.3. Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry). Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale rewrite) and `@adia-ai/a2ui-compose` + `@adia-ai/a2ui-retrieval` v0.4.3 (process.env browser-compat fix). See root [CHANGELOG.md `## [0.4.3]`](../../../CHANGELOG.md).
1244
+ ## [0.4.2] - 2026-05-11
1245
+
1246
+ ### Changed
1247
+
1248
+ - `catalog-a2ui_0_9.json` regenerated to pick up the 5 new `<input-ui type="number">` examples from `@adia-ai/web-components@0.4.2`: `quantity-stepper`, `price-with-currency`, `weight-with-unit`, `percent-bounded`, `temperature-negative`. The yaml `examples[]` entries drive retrieval signal for numeric-input intents (quantity / price / weight / percent / temperature).
1249
+ - `catalog-a2ui_0_9_rules.txt` regenerated alongside.
1250
+ - `chunks/` — `playground-app-shell.json` re-harvested after the `<theme-panel>` consumer migration (Phase 3 of theme-panel work): embedded HTML now shows `<theme-panel slot="content" parametric presets scheme-toggle></theme-panel>` instead of the ~30-line inline `<div id="theme-panel">` block. Chunk NAME `playground-app-shell` preserved as a stable retrieval identifier per the 2026-05-10 §22 lesson. 27 additional chunk files touched in this window for `source:` field updates following the ADR-0026 reorg (`apps/<X>/` → `playgrounds/<X>/` or `catalog/<X>/`); chunk NAMES unchanged.
1251
+
1252
+ ### Removed
1253
+
1254
+ - `fragments/layout/auth-card-header.json` — fragment retired (was the foundational auth-flow chunk header before migration to `<auth-card-content>` + `<auth-card-header>` chunk-level shape; instance_count had reconciled to 0 in v0.4.1, no longer present in any composition). Now archived at `.brain/archive/2026-Q2/retired-fragments/auth-card-header.md` per the v0.4.1 follow-up.
1255
+
1256
+ ### Lockstep
1257
+
1258
+ 9-package coordinated PATCH cut to v0.4.2 (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). Rides alongside `@adia-ai/web-components@0.4.2` (input-ui type=number rewrite) and `@adia-ai/web-modules@0.4.2` (editor-sidebar width mirror). See root [CHANGELOG.md `## [0.4.2]`](../../../CHANGELOG.md) for the cut narrative.
1259
+ ## [0.4.1] - 2026-05-10
1260
+
1261
+ ### Changed
1262
+
1263
+ - **Fragment metrics reconciled** — 28 fragments updated to match computed values from `npm run audit:fragments`. 45 files modified (28 JSON + 17 YAML; 11 JSON have no YAML sibling). `audit:fragments` now reports 0 drift.
1264
+ - **Special note: auth-card-header** instance_count reconciled from 23 → 0 (fragment no longer used by any composition). Pending decision on whether to deprecate or re-introduce.
1265
+ - Catalog regenerated to include 3 new simple-cluster yamls (121 total).
1266
+
1267
+ ### Added
1268
+
1269
+ - `.claude/docs/reports/chunk-reconcile-triage-2026-05-10.md` — triage doc documenting that all current `audit:chunk-reconcile` findings (9 fingerprint collisions + 19 near-duplicates + 10 cross-source) are intentional outcomes of the onb/reg alignment work + foundational shared chunks.
1270
+ ## [0.4.0] - 2026-05-10
1271
+
1272
+ ### Ride-along (no corpus changes)
1273
+
1274
+ Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy deprecation). Catalog regenerated; chunks/fragments/compositions/patterns byte-identical to v0.3.6.
1275
+
1276
+ 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.
1277
+ ## [0.3.6] - 2026-05-10
1278
+
1279
+ ### Changed
1280
+
1281
+ - **Component catalog regenerated** — 113 → 118 yamls (+5 from new editor-* bespoke children added in `@adia-ai/web-modules`). `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated.
1282
+
1283
+ - **New catalog entries** for the editor-cluster bespoke family per ADR-0023:
1284
+ - `EditorToolbar` (editor-toolbar) — JS-bearing
1285
+ - `EditorCanvas` (editor-canvas) — JS-bearing
1286
+ - `EditorSidebar` (editor-sidebar) — JS-bearing (delegates to `<pane-ui>`)
1287
+ - `EditorStatusbar` / `EditorCanvasEmpty` — CSS-only structural
1288
+
1289
+ The catalog is consumed by `@adia-ai/a2ui-retrieval` for protocol-vocabulary composition. Composers (zettel, chunk-zettel) now have addressable entries for editor sub-regions in protocol vocabulary.
1290
+
1291
+ ### No source changes
1292
+
1293
+ Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.5. The only change is the regenerated catalog manifest.
1294
+ ## [0.3.5] - 2026-05-07
1295
+
1296
+ ### Changed
1297
+
1298
+ - **Component catalog regenerated** — 107 → 113 yamls (+6 from new chat-* bespoke children added in `@adia-ai/web-modules`). `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated by `scripts/build/components.mjs`.
1299
+
1300
+ - **New catalog entries** for the chat-cluster bespoke family per ADR-0023:
1301
+ - `ChatThread` (chat-thread) — JS-bearing (scroll surface)
1302
+ - `ChatComposer` (chat-composer) — JS-bearing (input wrapper)
1303
+ - `ChatSidebar` (chat-sidebar) — JS-bearing (resize+collapse)
1304
+ - `ChatHeader` / `ChatStatus` / `ChatEmpty` — CSS-only structural
1305
+
1306
+ The catalog is consumed by `@adia-ai/a2ui-retrieval` for protocol-vocabulary composition. Composers (zettel, chunk-zettel) now have addressable entries for chat sub-regions in protocol vocabulary.
1307
+
1308
+ ### No source changes
1309
+
1310
+ Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.4. The only change is the regenerated catalog manifest.
1311
+ ## [0.3.4] - 2026-05-07
1312
+
1313
+ ### Changed
1314
+
1315
+ - **Component catalog regenerated** — 100 → 107 yamls (+7 from new admin-* CSS-only structural children added in `@adia-ai/web-modules`). `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated by `scripts/build/components.mjs`.
1316
+
1317
+ - **New catalog entries** for the bespoke shell-tier family per ADR-0023:
1318
+ - `AdminSidebar` (admin-sidebar) — JS-bearing
1319
+ - `AdminCommand` (admin-command) — JS-bearing
1320
+ - `AdminContent` / `AdminTopbar` / `AdminStatusbar` / `AdminScroll` / `AdminPage` / `AdminPageHeader` / `AdminPageBody` — CSS-only structural
1321
+
1322
+ The catalog is consumed by `@adia-ai/a2ui-retrieval` for protocol-vocabulary composition. Composers (zettel, chunk-zettel) now have addressable entries for shell sub-regions instead of falling back to chunk-name retrieval.
1323
+
1324
+ ### No source changes
1325
+
1326
+ Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.3. The only change is the regenerated catalog manifest.
1327
+ ## [0.3.3] - 2026-05-07
1328
+
1329
+ **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`).
1330
+
1331
+ ### Added
1332
+
1333
+ - **`fragments/layout/auth-card-header.json`** — first fragment
1334
+ promoted from chunk corpus. Was 23 instances across user-flow auth
1335
+ pages (sign-in, sign-up, recovery, account-deleted, email-verify,
1336
+ forbidden) + error pages (404, 500, maintenance), all sharing the
1337
+ same shape: `Header > Column[align=center,gap=1] >
1338
+ [Link>Image, Text(h1), Text]`. 4 slots
1339
+ (logo-href, logo-src, title, description). Promotion provides 23×
1340
+ leverage over chunk-by-chunk emission. Zettel retrieval test:
1341
+ score 88 vs 48 next alternative. (closes backlog #65)
1342
+
1343
+ - **`A2UI_DISABLE_EMBEDDINGS` env-var override** in
1344
+ `scripts/chunk-library.js`. When set, `searchChunksAsync()` falls
1345
+ through to keyword-only search instead of attempting embeddings.
1346
+ Used by the new top-level `npm run eval:keyword-only` script.
1347
+ Latency drops from 100-400ms to 0-1ms with same scores; proves
1348
+ keyword path is independently healthy. (closes backlog #11)
1349
+
1350
+ - **Glossary section** in README.md — chunk vs pattern vs fragment
1351
+ vs composition. Four overlapping concepts circulate through this
1352
+ package; the glossary disambiguates. (closes backlog #94)
1353
+
1354
+ - **Catalog manifest documentation** — README updated to clarify
1355
+ that `retrieval/catalog.js` is **hand-written** (a CatalogManifest
1356
+ module that dynamically reads per-component `<c>.a2ui.json`
1357
+ sidecars at runtime), NOT a generated artifact. The actual
1358
+ generated artifacts are `traits/_catalog.json` and per-component
1359
+ `<name>.a2ui.json` sidecars. (companion to AGENTS.md hard-rule #7
1360
+ correction; closes backlog #57)
1361
+ ## [0.3.2] - 2026-05-06
1362
+
1363
+ **9-package lockstep patch cut to v0.3.2.** All lockstep members share
1364
+ one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1365
+ Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
1366
+
1367
+ ### Added
1368
+
1369
+ - **Corpus re-harvest** — 173 unique chunks (from 160), 322 instances.
1370
+ 13 new block patterns (`command-palette-grouped`, `agent-activity-feed`,
1371
+ `agent-reasoning-collapsed`, `user-profile-card`, `kanban-board-3col`,
1372
+ `chat-streaming-surface`, `settings-notifications`, `marketing-hero-cta`,
1373
+ `conversion-funnel-6step`, `users-table-badge`, `destructive-confirm-modal`,
1374
+ `editor-code-pane`, `editor-preview-pane`) + 5 new page shells
1375
+ (`settings-page-shell`, `form-page-shell`, `marketing-page-shell`,
1376
+ `error-page-shell`, `editor-page-shell`).
1377
+ - **Harvester source expansion** — `apps/` added alongside `site/pages/`;
1378
+ `apps/generic-shells/app/` contributes the 5 generic page shells.
1379
+
1380
+ ### Fixed
1381
+
1382
+ - **`data-chunk-slot` preservation** — `stripChunkAttrs()` regex narrowed
1383
+ to only strip `data-chunk` + `data-chunk-kind`; no longer strips
1384
+ `data-chunk-slot` (composer runtime dependency for slot-finding).
1385
+
1386
+ ### Changed
1387
+
1388
+ - `version`: `0.3.1` → `0.3.2`.
1389
+ ## [0.3.1] - 2026-05-06
1390
+
1391
+ **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).
1392
+
1393
+ 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).
1394
+
1395
+ ### Changed
1396
+
1397
+ - `version`: `0.3.0` → `0.3.1`.
1398
+ - Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
1399
+ ## [0.3.0] - 2026-05-05
1400
+
1401
+ **9-package lockstep cut.** 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`.
1402
+
1403
+ The lockstep policy expanded from 8 to 9 packages with this cut — `@adia-ai/llm` joins as a 9th member, and `@adia-ai/a2ui-utils` was renamed to `@adia-ai/a2ui-runtime`. Both are BREAKING for npm consumers (acceptable under pre-1.0 semver).
1404
+
1405
+ This package itself ships **no source changes** in v0.3.0. The cut bumps version + the internal dep range only.
1406
+
1407
+ ### Changed
1408
+
1409
+ - `version`: `0.2.5` → `0.3.0`.
1410
+
1411
+ ### No source changes
1412
+
1413
+ `a2ui-corpus` source is byte-identical to `0.2.5`. The cut bumps version only — corpus has no `@adia-ai/*` dependencies so no dep-range updates either.
1414
+ ## [0.2.5] - 2026-05-04
1415
+
1416
+ **Lockstep cut + catalog regen for `<fields-ui>` primitive.** 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). Patch cut — **no BREAKING changes**.
1417
+
1418
+ ### Changed
1419
+
1420
+ - `version`: `0.2.4` → `0.2.5`.
1421
+ - `catalog-a2ui_0_9.json`: 1 new entry covering the new `<fields-ui>` primitive (component class `Fields`, tag `fields-ui`, props `[columns]` + `[inline]`, default slot for `<field-ui>` children + the `rows` span pattern). Catalog: 97 → 98 yamls.
1422
+ - Per-element `fields/fields.a2ui.json` written by `scripts/build/components.mjs`.
1423
+ ## [0.2.4] - 2026-05-04
1424
+
1425
+ **Lockstep cut + catalog regen for `<demo-toggle-ui>` primitive.** 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). Patch cut — no breaking changes.
1426
+
1427
+ ### Changed
1428
+
1429
+ - `version`: `0.2.3` → `0.2.4`.
1430
+ - `catalog-a2ui_0_9.json`: 6 new references (name + slots + events + props + tokens + example) covering the new `<demo-toggle-ui>` primitive added in `web-components@0.2.4`.
1431
+
1432
+ ### Changed — Catalog regenerated against `web-components` Tier-4 surface
1433
+
1434
+ `catalog-a2ui_0_9.json` regenerated to include the new
1435
+ `<demo-toggle-ui>` primitive (6 references covering name + slots +
1436
+ events + props + tokens + example) authored alongside the trait-
1437
+ library lift initiative's Tier 5 work. No other corpus surface
1438
+ changed; new traits introduced in `web-components` are picked up via
1439
+ the generated `_catalog.json` consumed by
1440
+ `@adia-ai/a2ui-retrieval`.
1441
+
1442
+ ---
1443
+ ## [0.2.3] - 2026-05-04
1444
+
1445
+ **Lockstep cut.** All 8 published `@adia-ai/*` packages bump
1446
+ 0.2.2 → 0.2.3 per
1447
+ [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1448
+ Patch cut — no breaking changes.
1449
+
1450
+ ### Changed
1451
+
1452
+ - `version`: `0.2.2` → `0.2.3`.
1453
+
1454
+ ### No source changes
1455
+
1456
+ `@adia-ai/a2ui-corpus` source is byte-identical to `0.2.2`. The cut bumps version only.
1457
+ ## [0.2.2] - 2026-05-02
1458
+
1459
+ **Lockstep cut.** 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.
1460
+
1461
+ ### Changed
1462
+
1463
+ - `version`: `0.2.1` → `0.2.2`.
1464
+
1465
+ ### No source changes
1466
+
1467
+ `a2ui-corpus` source is byte-identical to `0.2.1`. The cut bumps version only.
1468
+
1469
+ ---
1470
+ ## [0.2.1] - 2026-05-02
1471
+
1472
+ **Lockstep cut + chunk-corpus reorganization mega-arc + trait registry regenerated from web-components SoT.** 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.
1473
+
1474
+ ### Changed
1475
+
1476
+ - `version`: `0.2.0` → `0.2.1`.
1477
+ - `evals/holdout-compose-from-chunks.jsonl` migrated **into** corpus from a2ui-mcp (was at `packages/a2ui/mcp/evals/`). 20-intent compose-from-chunks holdout now lives next to the corpus it tests. `evals/run.mjs` updated to load from the new home; the legacy `evals/harness.mjs` was retired (its functionality merged into `run.mjs`).
1478
+
1479
+ ### Changed — Trait registry now generated from web-components SoT (2026-05-02)
1480
+
1481
+ `packages/a2ui/retrieval/catalog.js` no longer carries a hand-curated `traitRegistry` array. The trait list is loaded at module init from `packages/web-components/traits/_catalog.json` (generated by `node scripts/build/traits-catalog.mjs` in the monorepo root from live `defineTrait()` metadata). Per `ADR-0018`.
1482
+
1483
+ Behavior changes:
1484
+ - 4 phantom traits (`disabled-state`, `form-associated`, `value-sync`, `resettable`) no longer appear in MCP `get_traits` responses — they had no implementation in `traits/`. Auto-pruned by construction.
1485
+ - 2 naming mismatches resolved: `resize-observer-trait` → `resize-observer`, `intersection-observer-trait` → `intersection-observer`. The catalog now uses the same names as the trait files.
1486
+ - Trait entries now include the full schema (`attributes`, `events`, `config` arrays) instead of just `{ name, category, description }`. Consumers reading `getTraits()` get richer metadata. Older shape is a strict subset, no breakage.
1487
+
1488
+ ### Changed
1489
+
1490
+ - **`chunk-embeddings.json` (~20 MB) and `pattern-embeddings.json` (~3 MB)
1491
+ removed from the published npm tarball.** Both files remain committed in
1492
+ git so the monorepo's own pipeline runs unchanged. Published-tarball size
1493
+ drops from ~24 MB unpacked to ~3.4 MB.
1494
+
1495
+ Consumers who need embedding-based retrieval regenerate locally via
1496
+ `npm run build:embeddings:all` (requires API access to the embedding
1497
+ provider). Keyword-only retrieval (`searchChunks` / `searchPatterns`)
1498
+ works unchanged without the indexes — the embedding-aware async paths
1499
+ (`searchChunksAsync` / `searchPatternsAsync`) fall through to keyword
1500
+ scoring when the index file is absent (`chunk-embedding-retriever.js`
1501
+ returns `null` gracefully on `ENOENT`).
1502
+
1503
+ Note: the prior `chunk-embedding-retriever` path (`../../corpus/chunk-embeddings.json`)
1504
+ resolves correctly inside the monorepo but breaks under a
1505
+ `node_modules/@adia-ai/a2ui-corpus/` install layout — so the embedding
1506
+ files were already unreachable to npm consumers, just heavy. This change
1507
+ surfaces that reality. Published-consumer reachability is a separate
1508
+ follow-up.
1509
+
1510
+ See README § "What's committed vs generated vs published".
1511
+
1512
+ ### Changed — Chunk corpus reorganization mega-arc (2026-05-02)
1513
+
1514
+ 12-commit arc that re-balances the chunk corpus for retrieval precision and harvester hygiene. End state: 100 compositions, 41 fragments, 1,422 chunks, 41 MB embeddings, fragment reuse ratio 40.2% (was 29.9% pre-§37; floor: 29.9%). Eval byte-identical: zettel coverage 83% / avgScore 89 / MRR 0.986 throughout.
1515
+
1516
+ - **`section-with-stack` fragment promoted** — first corpus use of children-as-attribute slot binding. 43 inline `Section(Column)` pairs collapsed into the new fragment at `fragments/layout/section-with-stack.json`.
1517
+ - **Multi-variant chunk split (308 → 937 per-variant chunks).** Harvester migrated from `<section>`-wrapper-tagging to inner-pattern-tagging; multi-variant artifact-items now produce one chunk per visual variant (`alert-variant-warning` vs `alert-variant-success`) instead of one bundled chunk. Embedding-probe verified the precision lift: "warning alert" → `alert-variant-warning` (0.657), "large avatar" → `avatar-size-lg` (0.639), "small primary button" → `button-size-primary-sm` (0.656).
1518
+ - **Skeleton harvest** (`collapseNestedChunkContent`) — page/panel chunks with nested `data-chunk` children replace the inner content with `<!-- nested: <name> -->` so the parent chunk is a compact skeleton recording structure + which sub-chunks fill which positions. xl-bucket chunks (>10K chars): 2 → 0.
1519
+ - **Harvest-side hygiene** — strip `data-chunk` attribute from output HTML; strip docs-page wrappers; de-dup adjacent slug tokens; new Case 3 in `stripChunkWrappers` for `<div data-artifact-item data-chunk>` patterns.
1520
+ - **Multi-variant CSS narrowing** — `dev-chunks.css` outline narrows to `[data-artifact-container]` so the visual marker matches the harvested scope.
1521
+
1522
+ ### Added — Under-harvest audit script (2026-05-02)
1523
+
1524
+ New `scripts/build/under-harvest-audit.mjs` flags pages under `site/pages/{patterns,examples,components}/` that have ≥2 substantive layout elements (`<section>`/`<card-ui>`/`<grid-ui>`) but fewer than 1-per-5KB-body `data-chunk` markers. Drives a recurring 2-week remote agent (`trig_01UEDMT1cMqCpRLU6z8LBMo4`) that opens triage PRs for under-harvested pages.
1525
+
1526
+ ### Fixed — A2UI registry gap closure + ADR-0015 pattern migration (2026-05-02)
1527
+
1528
+ - **Registry additions** in `@adia-ai/a2ui-utils`: `Field`, `Rating`, `ListItem`, `NavItem`, `NavGroup`. All 5 components existed; only the registry mapping was missing. Net effect on the corpus: 28/113 hand-authored patterns previously rendered with `[unknown: X]` placeholders when imported into `/site/playground/a2ui-editor`. After: 0/113 unknown.
1529
+ - **`patterns/navigation/section-subnav.json`** migrated per `ADR-0015 § Nav consolidation`. `SectionNav` → `Nav variant=section`; `SectionNavItem` → `NavItem`. The pattern was referencing the retired 6-element nav family.
1530
+ - **`patterns/layout/weather-widget.json`** — renamed `Metric` → `Stat` (no `<metric-ui>` exists; `Stat` is the canonical metric/value/change/trend primitive).
1531
+ - Smoke side-effect: zettel score bumped 91 → 92; smoke validation flipped from `valid=false score=98/91` → `valid=true score=100/92`. The registry gaps were tripping validation upstream.
1532
+
1533
+ Per-finding triage in `.claude/docs/reports/playground-examples-review-2026-05-02.md`.
1534
+ ## [0.2.0] - 2026-05-02
1535
+
1536
+ **Lockstep cut.** All 8 published `@adia-ai/*` packages now share one
1537
+ version, governed by [`.claude/docs/specs/package-architecture.md` § 15
1538
+ (Versioning Policy)](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1539
+
1540
+ This release also formalizes corpus's role as **the catalog's home** —
1541
+ spec § 3 first-principle 3 was rewritten in v0.6.0 of the spec to
1542
+ make this explicit. Primitives produce YAML/`.a2ui.json` sidecars;
1543
+ the build assembles them into `catalog-a2ui_0_9.json` here.
1544
+
1545
+ ### Changed
1546
+
1547
+ - `version`: `0.0.9` → `0.2.0`.
1548
+
1549
+ ### No source changes (data)
1550
+
1551
+ Corpus content (catalog, patterns, fragments, compositions, exemplars,
1552
+ chunks, embeddings, eval fixtures, gap registry, feedback) is
1553
+ byte-identical to 0.0.9. The cut bumps version only — corpus has no
1554
+ internal `@adia-ai/*` dependencies. The `a2ui-mcp@0.1.3 → corpus@0.0.6`
1555
+ caret-lock bug from the prior cut is resolved by the mcp package's
1556
+ `^0.2.0` range update in this same lockstep cut.
1557
+
1558
+ ### Touched (no behavior change)
1559
+
1560
+ - `scripts/run-pipeline.mjs`, `scripts/chunk-library.js`,
1561
+ `scripts/feedback-promote.js`, `scripts/feedback-report.js` — import
1562
+ paths swept to match the compose `engines/` → `strategies/` rename
1563
+ and the retrieval subdir reorganization. Pure path-string updates;
1564
+ no logic changes.
1565
+ ## [0.0.9] - 2026-05-01
1566
+
1567
+ Pure-data refresh covering the §22-25 web-components arc. Catalog
1568
+ regenerated against the post-rename + post-consolidation surface;
1569
+ chunks re-harvested where source pages changed. Rolls forward the
1570
+ [0.0.8] cut (avatar-ui canonicalization) — the 0.0.8 bump was
1571
+ prepared but never tagged + published; its content is part of this
1572
+ release.
1573
+
1574
+ ### Changed
1575
+
1576
+ - **Catalog regenerated against `web-components@0.0.33` surface** — 95
1577
+ yamls now include the consolidated nav family (`<nav-ui>`,
1578
+ `<nav-group-ui>`, `<nav-item-ui>` with `[variant="primary"|"section"]`)
1579
+ and the renamed module elements (`<chat-shell>` was
1580
+ `<adia-chat-ui>`; `<editor-shell>` was `<adia-editor-ui>`;
1581
+ `<admin-shell>` was `<app-shell-ui>`; `<gen-root>` was
1582
+ `<gen-ui-ui>`; `<chat-thread-ui>` was `<chat-ui>`). Element renames
1583
+ per `ADR-0015`;
1584
+ nav consolidation per ADR-0015 § Nav consolidation. The 6-element
1585
+ nav family (`<app-nav-*>` + `<section-nav-*>`) collapsed into 3
1586
+ primitives. Synthesizer no longer emits the renamed-away tags.
1587
+ - **`yaml name:` fields swept** per
1588
+ `ADR-0016` —
1589
+ primitives now `name: UI<X>` (was `Adia<X>`); modules now
1590
+ `name: <X>` without the `Adia` prefix. Consumers reading the
1591
+ catalog to cross-reference class names get the current convention.
1592
+ - **`patterns/_components.json`** refreshed to match the new
1593
+ catalog surface (component IDs, allowed children, slot vocabularies).
1594
+ - **Chunks re-harvested** for the chat / playground-app-shell /
1595
+ playground-chat / playground-construct-canvas / playground-gen-ui
1596
+ source pages — these surfaces touched the renamed shells +
1597
+ consolidated nav and now emit canonical post-rename markup.
1598
+ - **`scripts/extract.js`** updated to recognize the renamed elements
1599
+ + `[variant]` cascade markers when classifying chunks.
1600
+
1601
+ ### Rolled forward from [0.0.8] (never tagged)
1602
+
1603
+ - **`<avatar-ui name=…>` → `<avatar-ui text=…>`** sweep across 8
1604
+ source pattern pages (31 instances). `name` is the deprecated alias
1605
+ scheduled for removal; chunks now carry the canonical attribute.
1606
+ Chunk count + shape unchanged; embedding index unaffected (only
1607
+ chunk-root attrs are indexed; `<avatar-ui>` is always nested in
1608
+ body HTML).
1609
+ ## [0.0.8] - 2026-05-01
1610
+
1611
+ Pure-data refresh. Chunk re-harvest aligns the corpus with the
1612
+ canonical attribute API for `<avatar-ui>` so the synthesizer doesn't
1613
+ teach consumers to emit deprecated markup.
1614
+
1615
+ ### Changed
1616
+
1617
+ - Chunks re-harvested after sweeping `<avatar-ui name=…>` →
1618
+ `<avatar-ui text=…>` across 8 source pattern pages (31 instances).
1619
+ `name` is the deprecated alias scheduled for removal; chunks now
1620
+ carry the canonical attribute. Pure data change — chunk count +
1621
+ shape unchanged (761 unique / 911 instances), embedding index
1622
+ unaffected (only chunk-root attrs are indexed; `<avatar-ui>` is
1623
+ always nested in body HTML).
1624
+ - Catalog regenerated against `web-components@0.0.29` surface
1625
+ (`<feed-ui>` + `<feed-item-ui>` + `<swatch-ui>` family entries
1626
+ carried through, app-shell slot-vocabulary parity reflected).
1627
+ ## [0.0.7] - 2026-04-28
1628
+
1629
+ ### Added
1630
+
1631
+ - **Two new `page`-kind chunks**: `reg-step-shell` (registration
1632
+ multi-step wizard wrapper) and `onb-step-shell` (onboarding tour
1633
+ wrapper). Both expose four named slots — `page-story`, `page-header`,
1634
+ `page-content`, `page-footer` — that the chunk synthesizer binds
1635
+ block-kind chunks into. Five existing reusable blocks per family
1636
+ (`*-story-pane`, `*-step-header`, `*-step-footer`, `*-step-progress`,
1637
+ per-step content block) recorded as the shells' `nested` chunks.
1638
+
1639
+ Page-kind catalog is now 3 (was 1): `dashboard-admin-page`,
1640
+ `reg-step-shell`, `onb-step-shell`.
1641
+
1642
+ Source pages: `site/pages/examples/registration/personal/index.html`
1643
+ + `site/pages/examples/onboarding/welcome/index.html` — one canonical
1644
+ instance each. The other 18 reg + 9 onb step pages share the same
1645
+ template; replicating shell tags would produce duplicate instances
1646
+ without changing the unique-name catalog.
1647
+
1648
+ Unlock: `compose_from_chunks(intent)` can now synthesize multi-step
1649
+ wizard pages and onboarding-tour pages on top of the existing
1650
+ admin-dashboard shape — 3× expansion of the page-kind catalog.
1651
+ ## [0.0.6] - 2026-04-28
1652
+
1653
+ **Retires the legacy exemplar extract → ingest path.** The chunk corpus
1654
+ + chunk-aware synthesizer (shipped 0.0.3 → 0.0.4 → 0.0.5 today) is now
1655
+ the single training surface; the parallel exemplar-derived auto-ingest
1656
+ that was running on every MCP server boot is gone.
1657
+
1658
+ ### Removed
1659
+
1660
+ - **Stale auto-generated artifacts** under `exemplars/<category>/<name>/`:
1661
+ - `a2ui.json` (full-page A2UI extract; 9 files)
1662
+ - `chunks/*.json` per-exemplar atomic chunks (~70 files)
1663
+ These were transient build outputs of the old extract.js pipeline. The
1664
+ source `index.html` + `<name>.yaml` files stay for human reference and
1665
+ potential future use as fragment authoring.
1666
+
1667
+ ### Changed
1668
+
1669
+ - The `extract.js` + `ingest.js` scripts still ship in the tarball as
1670
+ legacy tools. They no longer run by default in `run-pipeline.mjs`;
1671
+ pass `--legacy-exemplars` to opt back in. See companion mcp 0.0.5
1672
+ release notes for the runtime impact.
1673
+
1674
+ ### What stayed the same
1675
+
1676
+ - Hand-authored `patterns/` (155 entries), `fragments/` (zettel graph),
1677
+ `compositions/`, `pattern-embeddings.json`, `chunk-embeddings.json`,
1678
+ `chunks/_index.json` (701 unique / 851 instances), and the
1679
+ `chunk-library` API are all unchanged.
1680
+ - The `exemplars/` source HTML + `<name>.yaml` partners stay in the
1681
+ tarball — useful for reference, but no longer feed the training
1682
+ pipeline by default.
1683
+ ## [0.0.5] - 2026-04-28
1684
+
1685
+ Corpus refresh — drops a non-chunk-shaped entry and regenerates both
1686
+ embedding indices. Pure-data; no schema changes; no consumer-facing
1687
+ API impact beyond a slight retrieval-quality bump.
1688
+
1689
+ ### Removed
1690
+
1691
+ - **`genui-feed-message` chunk** — `<col-ui id="gen-feed">` on
1692
+ `gen-ui-feed/index.html` is sample-data scaffolding (the feed
1693
+ structure varies entirely per session), not a discrete trainable
1694
+ pattern. The `data-chunk` marker was dropped; the source page
1695
+ itself stays. Inventory entry struck through, kept as a strikethrough
1696
+ audit trail.
1697
+
1698
+ ### Changed
1699
+
1700
+ - **`chunks/_index.json` re-harvested** — 702 → **701 unique** chunks;
1701
+ 852 → **851 instances**; by-kind `block=843, panel=7, page=1`.
1702
+ - **`chunk-embeddings.json` regenerated** — 701 × 1536d (was 702).
1703
+ Same provider / model / dims; just one fewer entry.
1704
+ - **`pattern-embeddings.json` regenerated** — same 113 × 1536d count;
1705
+ fresh timestamp.
1706
+ ## [0.0.4] - 2026-04-28
1707
+
1708
+ Same-day follow-up to `0.0.3` shipped earlier today. Adds **semantic
1709
+ search vectors** to the corpus and ships them in the tarball so consumers
1710
+ get embedding-based retrieval out of the box (no post-install build step).
1711
+ Pure-data addition; no schema changes.
1712
+
1713
+ ### Added
1714
+
1715
+ - **`pattern-embeddings.json`** — refreshed against the current
1716
+ 113-pattern set (was last built 2026-04-23 against 109 patterns).
1717
+ OpenAI text-embedding-3-small, 1536 dims, ~3.3 MB.
1718
+ - **`chunk-embeddings.json`** — NEW. 702 chunks × 1536 dims, ~20 MB.
1719
+ Embeds each chunk's name + kind + primary tag + slot names + nested
1720
+ chunk names + indexed attributes + cluster prefix. HTML body is
1721
+ deliberately NOT embedded (would dominate retrieval noise; the LLM
1722
+ gets the HTML at retrieval time).
1723
+
1724
+ ### Changed
1725
+
1726
+ - `package.json` `files` field now ships both embedding indices in the
1727
+ published tarball. Tarball size grows from ~3.5 MB to ~24 MB; the
1728
+ trade-off is that consumers can use semantic search out of the box
1729
+ without re-running embedding generation.
1730
+ - Companion repo tooling (not in tarball but used to generate the
1731
+ corpus):
1732
+ - `scripts/build/embeddings.mjs` — broken `import` paths fixed (the
1733
+ script had been dead since some directory move; load-env.mjs +
1734
+ embedding-provider.js were both at wrong relative paths).
1735
+ - **`scripts/build/embeddings-chunks.mjs`** — new sibling script that
1736
+ walks `chunks/<name>.json` and generates `chunk-embeddings.json`.
1737
+ Auto-detects Voyage / OpenAI / null per the same conventions as the
1738
+ pattern script. Honors `--kind`, `--batch`, `--out`, `--dry-run`.
1739
+ - `npm run build:embeddings` / `build:embeddings:chunks` /
1740
+ `build:embeddings:all` pipeline scripts.
1741
+
1742
+ ### Performance
1743
+
1744
+ - The chunk-aware composition synthesizer (`@adia-ai/a2ui-mcp@0.0.3`)
1745
+ uses these embeddings via `chunk-embedding-retriever.js` (cosine
1746
+ similarity, blended 5× with keyword score). Real-LLM eval improved
1747
+ from 7/10 → **9/10 retrieval hits** out of 10 hold-out intents — only
1748
+ novel composites still need synthesis fallback.
1749
+ ## [0.0.3] - 2026-04-28
1750
+
1751
+ Same-day extension after `0.0.2` shipped. Adds the **gen-UI training-chunk
1752
+ corpus** — 702 unique chunks (852 instances) harvested from `data-chunk`-marked
1753
+ elements across `site/pages/*` and the corpus exemplars. Pure-data addition;
1754
+ existing pattern/fragment/composition surface unchanged.
1755
+
1756
+ ### Added (gen-UI chunks)
1757
+
1758
+ - **`chunks/<name>.json`** × 702 — one record per chunk; carries
1759
+ `name`, `kind` (`block` | `panel` | `page`), `primary` (outer tag),
1760
+ `slots[]` (named regions for compositional reasoning), `nested[]`
1761
+ (child chunk names), `attrs` (indexed for retrieval), `html`
1762
+ (bounding HTML, descendants intact), `source` (original file path),
1763
+ `captured_at`. Multi-instance reusable slot chunks
1764
+ (e.g. `auth-card-header`, `reg-step-header`) carry an `instances`
1765
+ array — one entry per page where the chunk appears.
1766
+ - **`chunks/_index.json`** — aggregate index (metadata only, no HTML)
1767
+ for fast lookup. Records total counts, by-kind tallies, per-chunk
1768
+ pages + slot names + nested-chunk references.
1769
+ - **852 chunk instances** across ~150 distinct pages (70 template +
1770
+ 82 component primitive + 16 pattern). Coverage:
1771
+ `block=844, panel=7, page=1`.
1772
+
1773
+ ### Added (companion tooling — not in tarball)
1774
+
1775
+ - `scripts/build/harvest-chunks.mjs` (repo root) — walks site/pages
1776
+ + corpus exemplars; depth-tracked HTML parser; writes per-chunk
1777
+ records + aggregate index. Wired into
1778
+ `packages/a2ui/corpus/scripts/run-pipeline.mjs` Step 1.
1779
+ - `packages/a2ui/corpus/scripts/chunk-library.js` — in-memory loader
1780
+ for the chunk corpus; powers the new MCP retrieval tools (consumed
1781
+ by `@adia-ai/a2ui-mcp@0.0.2`).
1782
+ - `npm run harvest:chunks` / `harvest:chunks:dry` — pipeline scripts.
1783
+
1784
+ ### Convention reference
1785
+
1786
+ - Spec: [`.claude/docs/specs/genui-chunk-marker.md`](../../../.claude/docs/specs/genui-chunk-marker.md)
1787
+ (Draft v0.1.0) — three attributes (`data-chunk`, `data-chunk-kind`,
1788
+ `data-chunk-slot`); naming conventions per cluster; visual marker
1789
+ rules; harvester contract.
1790
+ - Inventory: [`.claude/docs/specs/genui-chunk-inventory-001.md`](../../../.claude/docs/specs/genui-chunk-inventory-001.md)
1791
+ — full list with intent labels + review status.
1792
+ ## [0.0.2] - 2026-04-27
1793
+
1794
+ Three-day batch since `0.0.1`. Catalog regenerated against the
1795
+ Phase 6 web-components surface (status enum, button `[color]` axis,
1796
+ canonical event names); four new dashboard / data patterns; nine
1797
+ prose exemplars purged of inline styles; auth-login + cta exemplars
1798
+ migrated to canonical field-ui wrapping; three superseded fragments
1799
+ removed. Pure-data package — no executable code change.
1800
+
1801
+ ### Added (patterns)
1802
+
1803
+ - **`patterns/data/chart-card-with-trend-footer.{json,yaml}`** —
1804
+ card-ui composition with chart in body and trend-stat footer
1805
+ (KPI delta + sparkline). Dashboard pattern.
1806
+ - **`patterns/data/chart-grid-with-kpis.{json,yaml}`** — grid-ui
1807
+ layout pattern with KPI cards above and chart-ui beneath, the
1808
+ canonical "dashboard above the fold" shape.
1809
+ - **`patterns/data/chart-with-filter-pills.{json,yaml}`** —
1810
+ chart-ui composed with row-ui of filter pills above (segmented-ui
1811
+ / tag-ui mix), the standard chart-with-toolbar shape.
1812
+ - **`patterns/data/stat-with-sparkline.{json,yaml}`** — atomic
1813
+ KPI stat pattern with inline sparkline. Used as the building
1814
+ block for `chart-card-with-trend-footer`.
1815
+
1816
+ ### Added (authoring infrastructure)
1817
+
1818
+ - **`exemplars/_shell.css`** — shared body-shell + decoration-class
1819
+ stylesheet linked from the corpus exemplar root. Codifies the
1820
+ "no inline styles in exemplars" rule documented in the project
1821
+ CLAUDE.md / AGENTS.md. New exemplars link this file from their
1822
+ `index.html` and rely on `col-ui` / `row-ui` / `grid-ui` for
1823
+ layout instead of `<style>` blocks or `style="…"` attributes.
1824
+
1825
+ ### Changed (catalog)
1826
+
1827
+ - **`catalog-a2ui_0_9.json`** rebuilt against the v0.0.20 / v0.0.21
1828
+ web-components yaml surface. Diff includes:
1829
+ - `status` enum on `timeline-item-ui` / `stepper-item-ui` /
1830
+ `pipeline-status-ui` (replaces the prior multi-Boolean shape).
1831
+ - `[color]` enum on `button-ui` (`default | accent | info |
1832
+ success | warning | danger`), `variant` simplified to
1833
+ style-only.
1834
+ - Canonical event names — `submit` on `chat-ui` (was
1835
+ `chat-submit`), `toggle` on `chart-legend-ui` (was
1836
+ `legend-toggle`), `change` on `swiper-ui` (was `slide-change`).
1837
+ - `error` variant alias dropped from `toast-ui` / `alert-ui` /
1838
+ `tag-ui` enums.
1839
+ - `agent-trace-ui` `[collapsed]` (was `[open]`).
1840
+ - `field-ui` `error` prop removed from props list.
1841
+ - `table-toolbar-ui` opt-out attribute names — `noFilter` /
1842
+ `noSort` / `noColumns` / `noSearch`.
1843
+ - **`patterns/_components.json:3020`** — `timeline-item-ui`
1844
+ children-snippet migrated `completed active` → `status="completed"`.
1845
+ The snippet feeds the LLM bridge; the legacy form would have
1846
+ caused gen-ui to suggest deprecated attributes when generating
1847
+ timelines.
1848
+ - **`patterns/_index.json`** regenerated to reflect the four new
1849
+ data patterns and a few keyword refinements.
1850
+
1851
+ ### Changed (exemplars)
1852
+
1853
+ - **9 prose exemplars** (`prose/auth-login`, `prose/cta`,
1854
+ `prose/feature-grid`, `prose/footer`, `prose/hero`,
1855
+ `prose/pricing`, `prose/steps`, `prose/testimonials`) and
1856
+ **`ui/auth-login`** purged of inline `<style>` blocks and
1857
+ `style="…"` attributes. Width constraints come from `setup.js`
1858
+ setting `--page-content-max-width` via
1859
+ `setProperty`; layout from `col-ui` / `row-ui` / `grid-ui`;
1860
+ asymmetric ratios from `[columns]` + `[span]`. Shadow + decoration
1861
+ surface lifted to `_shell.css`.
1862
+ - **`exemplars/prose/auth-login/index.html` + `exemplars/ui/auth-login/index.html`** —
1863
+ `<check-ui label="…">` migrated to canonical
1864
+ `<field-ui inline label="…"><check-ui name="…"></field-ui>`
1865
+ wrapping. 5 call sites total (Remember me, Trust this device,
1866
+ Terms agreement). Each migrated checkbox now serializes with a
1867
+ stable form key (`name="remember"` / `name="trust_device"` /
1868
+ `name="terms"`).
1869
+ - **`exemplars/prose/cta/`** — `acme-logo` icon (fictitious; not
1870
+ in `@phosphor-icons/core`) replaced with `hexagon` across 3
1871
+ files: `index.html:21`, `a2ui.json:102`,
1872
+ `chunks/prose-cta-card-1.json:65`. Cleared the
1873
+ `Icon "acme-logo" not found in registry` warning that fired on
1874
+ every render.
1875
+
1876
+ ### Removed (fragments)
1877
+
1878
+ - **`fragments/content/chart-legend.json`** — superseded by the
1879
+ `<chart-legend-ui>` primitive that landed in the web-components
1880
+ package. Inline-rendering the legend as a fragment is no longer
1881
+ the canonical path.
1882
+ - **`fragments/form/rating-row.{json,yaml}`** — superseded by
1883
+ the `<rating-ui>` primitive's first-class API (label + value
1884
+ + max + readonly all on the host element).
1885
+
1886
+ ### Verification
1887
+
1888
+ - `node scripts/build/components.mjs --verify` — `clean — 96 files up-to-date`.
1889
+ - Catalog hash matches the rebuild script's deterministic output.
1890
+ - Pattern index reverse-lookup test: every `_index.json` ref
1891
+ resolves to an existing pattern file.
1892
+
1893
+ ---
1894
+ ## [0.0.1] - 2026-04-24
1895
+
1896
+ First public release. Pure-data package: pattern corpus,
1897
+ fragment + composition library, exemplars, and held-out eval
1898
+ fixtures for the A2UI generation pipeline.
1899
+
1900
+ ### Included
1901
+
1902
+ - **Assembled catalog** (`catalog-a2ui_0_9.json`) — generated by
1903
+ `scripts/build-components.mjs` from the per-component YAML
1904
+ sources in `@adia-ai/web-components`. Contains component schemas,
1905
+ registry, domain classifications, fragments, compositions.
1906
+ - **Rules manifest** (`catalog-a2ui_0_9_rules.txt`) — human-readable
1907
+ rules file paired with the catalog.
1908
+ - **Patterns** (`patterns/`) — ~217 patterns across 11 domains
1909
+ (layout, forms, data, agent, navigation, display, container,
1910
+ settings, etc.). Indexed via `patterns/_index.json`.
1911
+ - **Fragments** (`fragments/`) — reusable A2UI atoms used by
1912
+ zettel-engine composition.
1913
+ - **Compositions** (`compositions/`) — templates that reference
1914
+ fragments via `$fragment` refs.
1915
+ - **Exemplars** (`exemplars/`) — few-shot training examples per
1916
+ domain. Consumed by the monolithic engine's prompt assembly.
1917
+ - **Held-out eval fixtures** (`evals/held-out.jsonl`) — 100 intents
1918
+ reserved from training for regression evaluation.
1919
+
1920
+ ### Corpus state at cut
1921
+
1922
+ See the "Corpus state" section below for pattern counts by domain,
1923
+ fragment library size, and composition coverage.
1924
+
1925
+ ---
1926
+
1927
+ ## Corpus state (current)
1928
+
1929
+ | Surface | Count |
1930
+ |---|---:|
1931
+ | Patterns (total) | 215 |
1932
+ | Pages (exemplars) | 9 |
1933
+ | Chunks | 61 |
1934
+ | Components registered | 89 |
1935
+ | Fragments | varies; see `fragments/` |
1936
+
1937
+ Domain breakdown:
1938
+ - layout: 114
1939
+ - forms: 38
1940
+ - data: 23
1941
+ - agent: 20
1942
+ - navigation: 11
1943
+ - display, container: 3 each
1944
+ - settings, data-display, input: 1 each
1945
+ ## [0.1.0] — internal baseline (pre-public, predates 0.0.1)
1946
+
1947
+ Initial version at the time the monorepo was established. Contains:
1948
+
1949
+ - **Patterns** (`patterns/`) — monolithic pattern library with schema.
1950
+ - **Fragments** (`fragments/`) — atomic fragments for the zettel engine (content, layout, wiring, etc.).
1951
+ - **Compositions** (`compositions/`) — hand-authored compositions that reference fragments.
1952
+ - **Exemplars** (`exemplars/`) — hand-authored HTML pages harvested into chunks during extraction.
1953
+ - **Held-out eval set** (`evals/held-out.jsonl`) — ~100 intents with golden matches for regression testing.
1954
+ - **Feedback / gaps registry** (`feedback/`, `gaps/`) — runtime-written operational learning.
1955
+ - **Taxonomy / synonym registry** — concept mapping for keyword-based retrieval.
1956
+
1957
+ Package name still uses the legacy `@adia-ai/a2ui-corpus` scope pending rename (see root CHANGELOG for context).