You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maka.apache.org by "dependabot[bot] (via GitHub)" <gi...@apache.org> on 2026/08/23 16:24:47 UTC

[PR] chore(deps): bump the minor-and-patch group across 1 directory with 26 updates [maka]

dependabot[bot] opened a new pull request, #3640:
URL: https://github.com/apache/maka/pull/3640

   Bumps the minor-and-patch group with 25 updates in the / directory:
   
   | Package | From | To |
   | --- | --- | --- |
   | [@ai-sdk/provider-utils](https://github.com/vercel/ai/tree/HEAD/packages/provider-utils) | `5.0.27` | `5.0.28` |
   | [@astryxdesign/cli](https://github.com/facebook/astryx/tree/HEAD/packages/cli) | `0.4.0` | `0.4.5` |
   | [@astryxdesign/core](https://github.com/facebook/astryx/tree/HEAD/packages/core) | `0.4.0` | `0.4.5` |
   | [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.5.6` | `2.5.9` |
   | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.2.0` |
   | [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `6.26.0` | `6.32.2` |
   | [@ai-sdk/anthropic](https://github.com/vercel/ai/tree/HEAD/packages/anthropic) | `4.0.39` | `4.0.40` |
   | [@ai-sdk/code-mode](https://github.com/vercel/ai/tree/HEAD/packages/code-mode) | `1.0.23` | `1.0.27` |
   | [@ai-sdk/cohere](https://github.com/vercel/ai/tree/HEAD/packages/cohere) | `4.0.27` | `4.0.28` |
   | [@ai-sdk/google](https://github.com/vercel/ai/tree/HEAD/packages/google) | `4.0.44` | `4.0.47` |
   | [@ai-sdk/open-responses](https://github.com/vercel/ai/tree/HEAD/packages/open-responses) | `2.0.28` | `2.0.29` |
   | [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `4.0.42` | `4.0.44` |
   | [@ai-sdk/openai-compatible](https://github.com/vercel/ai/tree/HEAD/packages/openai-compatible) | `3.0.30` | `3.0.32` |
   | [@larksuiteoapi/node-sdk](https://github.com/larksuite/node-sdk) | `1.72.0` | `1.73.0` |
   | [@openai/agents-core](https://github.com/openai/openai-agents-js) | `0.14.3` | `0.17.0` |
   | [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `7.0.66` | `7.0.70` |
   | [ws](https://github.com/websockets/ws) | `8.21.2` | `8.21.3` |
   | [electron](https://github.com/electron/electron) | `43.2.0` | `43.4.1` |
   | [@earendil-works/pi-tui](https://github.com/earendil-works/pi/tree/HEAD/packages/tui) | `0.83.0` | `0.84.2` |
   | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.28.0` | `1.33.0` |
   | [mermaid](https://github.com/mermaid-js/mermaid) | `11.16.1` | `11.17.0` |
   | [@astryxdesign/theme-neutral](https://github.com/facebook/astryx/tree/HEAD/packages/themes/neutral) | `0.4.0` | `0.4.5` |
   | [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.5.6` | `10.5.10` |
   | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.5` | `6.1.0` |
   | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.5` | `8.2.2` |
   
   
   Updates `@ai-sdk/provider-utils` from 5.0.27 to 5.0.28
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/vercel/ai/blob/main/packages/provider-utils/CHANGELOG.md">@​ai-sdk/provider-utils's changelog</a>.</em></p>
   <blockquote>
   <h2>5.0.28</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>e6087c9: fix: handle empty string tool call IDs</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/vercel/ai/commit/97a9489f39a5c5aaa324b981183a581a13ff456c"><code>97a9489</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19085">#19085</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/52eff910d2daf4f4707fcaae3d1fbad2d4b93291"><code>52eff91</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18698">#18698</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/7fbfc6d31878aca956609d1db60137c53a45d9bd"><code>7fbfc6d</code></a> fix: preserve streamed size-limit errors when response cancellation fails (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/1">#1</a>...</li>
   <li><a href="https://github.com/vercel/ai/commit/cbdbeee90d9aa4fee399b5628073f9fc30165ca6"><code>cbdbeee</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18645">#18645</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/401a4ba53319a314f257351b6bb4bd3480c82faf"><code>401a4ba</code></a> fix: allow AI SDK packages to import in runtimes without global fetch (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18535">#18535</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/63db19387ba71ec50820d146658ae720ab50c80b"><code>63db193</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18587">#18587</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/81cd0263f33202078469a5cead574e13225fa171"><code>81cd026</code></a> perf: make zod imports tree-shakeable (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18304">#18304</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/ae26160e2bd028a529e4114860282146fd2d70ff"><code>ae26160</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18566">#18566</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/1937bef4b48fd5c940a2ba35ec2ff41d374c455c"><code>1937bef</code></a> fix(provider-utils): make URL regex checks stateless (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18570">#18570</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/bb31e6bd18d00942e56a9905d4adb8095281bf1c"><code>bb31e6b</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/18508">#18508</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/vercel/ai/commits/@ai-sdk/provider-utils@5.0.28/packages/provider-utils">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@astryxdesign/cli` from 0.4.0 to 0.4.5
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/releases">@​astryxdesign/cli's releases</a>.</em></p>
   <blockquote>
   <h2>v0.4.5</h2>
   <p>Astryx 0.4.5 — all <code>@astryxdesign/*</code> packages ship at this version.</p>
   <pre lang="bash"><code>npx astryx upgrade --apply
   </code></pre>
   <h2><code>@​astryxdesign/core</code></h2>
   <h3>New Features</h3>
   <ul>
   <li>
   <p>BottomSheet: <code>snapPoints</code> makes the drag-to-resize stops the host's choice. A stop is the sheet's visible height, written as a viewport fraction (<code>0.5</code>), a percentage (<code>'50%'</code>), or a px length (<code>'320px'</code>) — matching <code>height</code>, where a bare number is also px and a string carries its unit. Fractions and percentages re-resolve when the viewport changes, so a sheet keeps the stop the user chose across a rotation, and swapping the points under a resting sheet re-anchors it the same way. A stop of a quarter of the sheet or less is a peek: it slides away rather than reflowing into a sliver, and thins the scrim. Taller stops are working surfaces, so they lay their content out and keep the scrim full — previously the shortest stop was always a peek, which would have thinned the backdrop of a half-height sheet (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5203">#5203</a>).
   Behavior change, deliberate and not breaking: every sheet used to carry three built-in stops (14%, 50% and 92% of the viewport), so a drag could leave it resting somewhere the host never asked for. A sheet now opens and closes unless <code>snapPoints</code> says otherwise; pass <code>snapPoints={[0.14, 0.5, 0.92]}</code> to keep the old stops. No prop, type, or DOM output was removed or renamed, and swipe-to-dismiss, the height budgets, and mobile-keyboard accommodation are untouched.</p>
   </li>
   <li>
   <p>Astryx ships translations for 28 more locales. <code>packages/core/locales/</code> went from <code>en</code> and <code>fr-FR</code> to 30 files — Arabic, Catalan, Chinese (Simplified and Traditional), Czech, Danish, Dutch, Finnish, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Romanian, Russian, Serbian, Spanish, Swedish, Turkish, Ukrainian, Vietnamese and Afrikaans — covering every <code>@astryx.*</code> message the components announce or display (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5185">#5185</a>).
   Nothing changes unless you ask for it: <code>InternationalizationProvider</code> still defaults to English, and the catalogs are loaded through the existing <code>./locales/*.json</code> export. An app that already passes a <code>locale</code> now gets translated component strings where it previously fell back to English.</p>
   <p>The catalogs come from Crowdin and are refreshed nightly (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5186">#5186</a>), so a translation landing upstream reaches a release without anyone opening a PR by hand.</p>
   </li>
   <li>
   <p>DateRangeInput / Calendar: add <code>maxRangeSpan</code> and <code>minRangeSpan</code> to constrain the size of a selected range. Once a start date is picked, days outside the allowed window are disabled — e.g. <code>maxRangeSpan={7}</code> keeps the range within a 7-day window of the start (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5145">#5145</a>).</p>
   </li>
   <li>
   <p>FormLayout: add <code>defaultOptionality</code> — set a form-wide default (<code>'optional'</code> or <code>'required'</code>) so only the exception carries a visible indicator. Under <code>'optional'</code> only <code>isRequired</code> fields show one; under <code>'required'</code> only <code>isOptional</code> fields do; a field that restates the default shows nothing. Under <code>'required'</code> the unmarked fields also expose <code>aria-required</code> so screen readers match what sighted users see — resolved on <code>aria-required</code> only, never the native <code>required</code> attribute. Unset keeps today's per-field behavior (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4791">#4791</a>).</p>
   </li>
   <li>
   <p>Add <code>astryx-input-clear-button</code> theme target on the shared clear button wrapper. Themes can now control the clear button's height and hover independently of other ghost buttons — for example suppressing the hover fill or matching a different element size scale (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5093">#5093</a>).</p>
   </li>
   </ul>
   <h3>Fixes</h3>
   <ul>
   <li>BottomSheet: a pull up from the scroll area now expands the sheet on iOS. Below the tallest detent, dragging up inside the content did nothing on a real device while the grab handle worked — the sheet took the gesture and then froze for the rest of the pull. iOS Safari raises PointerEvents for a finger under the same numeric id it puts in <code>Touch.identifier</code>, so the drag the touch path started was keyed to a live pointer: <code>beginDrag</code> captured that pointer, WebKit handed the capture straight back, and the <code>lostpointercapture</code> a millisecond later cancelled the drag. Touch-driven drags are now marked as such — they take no pointer capture, and <code>lostpointercapture</code>, <code>pointercancel</code> and <code>pointermove</code> for that same finger no longer cancel, end or double-drive them. Browsers that keep the two id spaces apart were never affected, which is why this only showed up on device (<a href="https://github.com/facebook/astryx/
 tree/HEAD/packages/cli/issues/5178">#5178</a>).</li>
   <li>Calendar weekday headers now use compact CLDR stand-alone-short names for the selected locale, while preserving the existing <code>Su</code> / <code>Mo</code> / <code>Tu</code> English labels.</li>
   <li>Render generated id attributes on Markdown headings so Outline hash links scroll to their target. Heading slugs now come from parser helpers shared with parseOutlineFromMarkdown, and the components.heading override receives the generated id (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4765">#4765</a>).</li>
   <li>StatusDot: pair each variant with a distinct built-in shape drawn from the system's semantic icon vocabulary — success a check, warning an exclamation, error a cross, neutral a ring, accent the plain filled dot — so status no longer relies on colour alone (WCAG 2.1 SC 1.4.1). The shapes mirror the marks <code>Banner</code>/<code>FieldStatus</code> render via <code>defaultIcons</code>, a different axis of consistency from <code>AvatarStatusDot</code>'s presence shapes (the two share only the neutral ring, intentionally). The diagonal check and cross take a slightly heavier stroke so they stay crisp and distinct at 8px. Also adds an <code>icon</code> prop for API parity with <code>AvatarStatusDot</code>: a rendered icon replaces the built-in glyph, while booleans and empty renders are ignored so <code>cond &amp;&amp; &lt;Icon /&gt;</code> stays safe. The built-in glyphs resolve through the icon registry under scoped <code>statusdot:&lt;variant&gt;</code> keys (the <code>rich
 text:*</code> precedent), so themes can reshape a variant's mark everywhere via <code>defineTheme({icons})</code> / <code>registerIcons</code> — including marks for augmented custom variants — while overrides of the standard 24px semantic icons deliberately do not leak into the 8px field. Themes can also target the new stable <code>astryx-statusdot-glyph</code> class and its <code>data-shape</code> attribute — a stroked inline <code>&lt;svg&gt;</code> painted from the dot's <code>currentColor</code> (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4373">#4373</a>).</li>
   <li><code>Table</code>'s row-expansion chevron now mirrors correctly under RTL. It previously rotated on expand with no RTL handling at all, so the directional glyph pointed the same way regardless of text direction, matching the pattern already used by <code>TreeListItem</code>'s chevron (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5153">#5153</a>).</li>
   </ul>
   <h2>Contributors</h2>
   <p>Thanks to everyone who contributed to this release:</p>
   <p><a href="https://github.com/athz"><code>@​athz</code></a> <a href="https://github.com/bhamodi"><code>@​bhamodi</code></a> <a href="https://github.com/cixzhang"><code>@​cixzhang</code></a> <a href="https://github.com/freddymeta"><code>@​freddymeta</code></a> <a href="https://github.com/HelloOjasMutreja"><code>@​HelloOjasMutreja</code></a> <a href="https://github.com/imdreamrunner"><code>@​imdreamrunner</code></a> <a href="https://github.com/jiunshinn"><code>@​jiunshinn</code></a> <a href="https://github.com/nynexman4464"><code>@​nynexman4464</code></a></p>
   <p><strong>Full Changelog</strong>: <a href="https://github.com/facebook/astryx/compare/v0.4.4...v0.4.5">https://github.com/facebook/astryx/compare/v0.4.4...v0.4.5</a></p>
   <h2>v0.4.4</h2>
   <p>Astryx 0.4.4 — all <code>@astryxdesign/*</code> packages ship at this version.</p>
   <pre lang="bash"><code>npx astryx upgrade --apply
   </code></pre>
   <h2><code>@​astryxdesign/core</code></h2>
   <h3>New Components</h3>
   <ul>
   <li>Promote <code>BottomSheet</code> and <code>BottomSheetSwitcher</code> from the canary-only Lab package to Core. The stable package now includes their existing native-dialog, drag-detent, transition, and mobile-keyboard behavior, plus Core documentation and examples (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5080">#5080</a>).</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/blob/main/packages/cli/CHANGELOG.md">@​astryxdesign/cli's changelog</a>.</em></p>
   <blockquote>
   <h1>0.4.5</h1>
   <hr />
   <h1>0.4.4</h1>
   <h4>New Components</h4>
   <ul>
   <li>Promote <code>BottomSheet</code> and <code>BottomSheetSwitcher</code> from the canary-only Lab package to Core. The stable package now includes their existing native-dialog, drag-detent, transition, and mobile-keyboard behavior, plus Core documentation and examples (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5080">#5080</a>).</li>
   </ul>
   <h4>New Features</h4>
   <ul>
   <li>
   <p><code>astryx template --cdn</code> writes a working no-build-step CDN starter page (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5068">#5068</a>).
   A CDN starter is a template, so it joins the template family beside <code>--skeleton</code> rather than claiming a top-level command. It is a flag and not the positional <code>astryx template cdn</code> because the positional resolves against everything <code>discoverAll()</code> finds, where a <code>cdn</code> id would shadow a discovered template. <code>cdn.template.html</code> loads Astryx from jsDelivr and esm.sh with no bundler, no install and no build step, with every CDN URL pinned to the Astryx version you have installed — an unpinned CDN URL resolves to whatever is latest and is cached hard, so a page written today breaks tomorrow without being edited. An existing file is never clobbered; <code>--overwrite</code> replaces it, and <code>--json</code> returns the receipt.</p>
   <p>The annotations are the things that are load-bearing and silent when missing: <code>?external=react,react-dom</code> (without it esm.sh bundles a second React and every hook throws <code>Cannot read properties of null (reading 'useState')</code>), <code>react/jsx-runtime</code> in the import map (the published bundle imports it; omitting it fails the page with <code>Failed to resolve module specifier</code>), and a <code>font-family</code> on <code>body</code> (nothing in the stylesheets sets a document font, so <code>Button</code> — which is <code>font: inherit</code> — otherwise renders its label in the browser's default serif).</p>
   <p>Three more lessons came out of building a real app on it. The page now <code>&lt;link&gt;</code>s the theme's webfont from Google Fonts, because the theme <em>names</em> Figtree and never loads it, so every viewer silently got the fallback stack (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5015">#5015</a> again). It imports the theme OBJECT and wraps in <code>&lt;Theme theme={neutralTheme} mode=&quot;system&quot;&gt;</code>, so light and dark follow the OS — the <code>data-astryx-theme</code> attribute alone scopes the stylesheet but cannot switch modes. And <code>#root:empty</code> carries a &quot;Loading…&quot; state, because ESM-from-CDN has real latency and a blank page reads as broken. Markup is <code>htm</code>, with a comment saying it is optional and <code>createElement</code> is the dependency-free alternative.</p>
   <p>A recipe that is only read is a recipe that is only assumed to work, so CI renders it: <code>.github/scripts/cdn-template-smoke-test.mjs</code> scaffolds the page with the real CLI and opens it in headless Chromium, failing on any console error, page error or failed request, and on a page that loads without rendering.</p>
   </li>
   <li>
   <p><code>astryx theme build</code> takes any number of theme files — <code>astryx theme build themes/*.ts</code> compiles them all in one process, so an app with several themes no longer hand-rolls a loop that re-enters the CLI once per theme. Outputs are byte-identical to the serial invocations; the run stops at the first failure and names the theme that failed. The CLI's Node floor (&gt;=22.13) is now declared in <code>engines</code>, so a package manager can enforce it at install instead of the build failing later (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5121">#5121</a>).</p>
   </li>
   <li>
   <p><code>defineTheme</code>: <code>color.accent</code> accepts a <code>[light, dark]</code> tuple (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/2279">#2279</a>)
   <code>ColorScaleConfig.accent</code> now takes either a single hex or a <code>[light, dark]</code> tuple, matching <code>TokenValue</code>. With a tuple, <code>expandColorScale</code> derives the light half of every generated <code>light-dark()</code> pair from the light seed's palettes and the dark half from the dark seed's, so each scheme gets a consistent derived palette (muted, on-accent, neutrals) instead of the <code>tokens['--color-accent']</code> workaround that skips scale generation. Single-string configs are unchanged, token for token. Also documents the precedence between <code>color</code> and <code>tokens</code> for accent-derived values: <code>tokens</code> entries win token by token, the <code>var(--color-accent)</code> reference tokens follow a <code>--color-accent</code> override at runtime, and the baked <code>--color-on-accent</code> stays derived from the <code>color.accent</code> seed.</p>
   </li>
   </ul>
   <h4>Fixes</h4>
   <ul>
   <li>
   <p>Bottom Sheet showcase block: the filter checkboxes are interactive again (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5157">#5157</a>).
   <code>CheckboxInput</code> is fully controlled — <code>value</code> is required and the input only moves when the owner updates it. The showcase passed a literal <code>value={false}</code> with no <code>onChange</code>, so the three filters (&quot;In stock&quot;, &quot;On sale&quot;, &quot;Free shipping&quot;) rendered but could never be toggled: on the docs site the first thing a reader tries in a Bottom Sheet does nothing, and anyone copying the block inherits three dead controls. Each filter now has its own <code>useState</code> and <code>onChange</code>, matching the checkbox wiring already used in the Bottom Sheet Switcher showcase.</p>
   </li>
   <li>
   <p>An integration whose manifest fails to load is no longer silent. A manifest that throws on import — the common case being one still calling a <code>create*</code> authoring factory, removed in 0.3.0 — contributes nothing, and the CLI treated that as if the package had never been configured: <code>astryx discover</code> answered <code>No integrations configured.</code> while <code>astryx.config.mjs</code> plainly configured one, and no command said a word. The only way to find out was to already suspect it and run <code>validate-integration</code> by name. Meta's internal <code>@nest/xds-meta</code> sat invisible to CLI discovery for a week that way, and the app team's conclusion was that the components did not exist (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5119">#5119</a>).
   The load error now counts as an integration issue, so the existing one-line stderr nudge fires on <code>component</code>, <code>template</code> and <code>upgrade</code>, and <code>discover</code> — the command whose whole job is listing integrations — nudges too, as does <code>search</code>. <code>discover</code> also stops reporting <code>configured: false</code> for a project that configured an integration that failed to load; the empty state now distinguishes &quot;you configured nothing&quot; from &quot;what you configured contributed nothing&quot;, which is the distinction <code>meta.configured</code> was introduced to carry.</p>
   <p>Nothing becomes fatal: the warning is best-effort, stderr-only, suppressed under <code>--json</code>, and never changes an exit code. Broken contributions are still skipped exactly as before.</p>
   </li>
   </ul>
   <h4>Contributors</h4>
   <p>Thanks to everyone who contributed to this release:</p>
   <ul>
   <li><a href="https://github.com/cixzhang"><code>@​cixzhang</code></a></li>
   <li><a href="https://github.com/imdreamrunner"><code>@​imdreamrunner</code></a></li>
   <li><a href="https://github.com/jiunshinn"><code>@​jiunshinn</code></a></li>
   </ul>
   <hr />
   <h1>0.4.3</h1>
   <h4>Fixes</h4>
   <ul>
   <li>The unloaded-font advisory is a notice, not a warning. A theme file cannot load a font — Astryx sets <code>--font-family-*</code> and loading is the app's job — so <a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5045">#5045</a>'s advisory fires on any theme naming a webfont, including a perfectly correct one. As a warning that made a clean build read as defective, and it put the shipped template permanently in violation of its own &quot;compiles with no warnings&quot; guard (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5079">#5079</a> had to allowlist the template's two font names in that assertion).
   The <code>theme.build</code> receipt now separates the two: <code>warnings</code> are defects the author should fix, <code>notices</code> are advisories about a correct theme. The font advisory moves to <code>notices</code> and to stdout with the rest of the build's progress; stderr stays for defects. The template guard is back to <code>warnings</code> being empty, and no longer needs to know which fonts the template names.</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/facebook/astryx/commit/683015aa9b3f4ba258dc7e4c8f2cc274afce46a5"><code>683015a</code></a> chore: version packages for v0.4.5</li>
   <li><a href="https://github.com/facebook/astryx/commit/0e8af82848caf1cc1d8e83a4a440b39f2338cab0"><code>0e8af82</code></a> feat(core): let the Bottom Sheet's host choose its snap points (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5203">#5203</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/14ba912f678e956cb9972346b35d90c75ec87dc5"><code>14ba912</code></a> chore: version packages for v0.4.4</li>
   <li><a href="https://github.com/facebook/astryx/commit/972a3169bca17e7ea89418b4a49647448c71ebbe"><code>972a316</code></a> chore(templates): remove abandoned table-page chart/heatmap experiments (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5167">#5167</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/dc90488a07902e8128addc44069b3ceb09129ded"><code>dc90488</code></a> fix(cli): wire state into the Bottom Sheet showcase checkboxes (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5157">#5157</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/6e7f89c16f52667014f559f4ef9d0e28f43a615c"><code>6e7f89c</code></a> feat(core): promote Bottom Sheet from Lab (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5080">#5080</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/915a7aafbf12acff9efe144b821e5913d28a5dc2"><code>915a7aa</code></a> fix(cli): a broken integration manifest fails loudly instead of vanishing (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5">#5</a>...</li>
   <li><a href="https://github.com/facebook/astryx/commit/71781fc039c9ba71328c6c7a95e38ae239324aa0"><code>71781fc</code></a> feat(cli): <code>astryx theme build</code> takes any number of themes — one invocation, ...</li>
   <li><a href="https://github.com/facebook/astryx/commit/ac850d9ea0a65c56013c57a9e84c50bbc7e38677"><code>ac850d9</code></a> feat(cli): astryx template --cdn — an ESM CDN recipe that is verified by rend...</li>
   <li><a href="https://github.com/facebook/astryx/commit/59399613497d7cc2c916c1b77fc88f77f6366fb6"><code>5939961</code></a> feat(theme): accept a [light, dark] tuple for defineTheme color.accent (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/2279">#2279</a>...</li>
   <li>Additional commits viewable in <a href="https://github.com/facebook/astryx/commits/v0.4.5/packages/cli">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@astryxdesign/core` from 0.4.0 to 0.4.5
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/releases">@​astryxdesign/core's releases</a>.</em></p>
   <blockquote>
   <h2>v0.4.5</h2>
   <p>Astryx 0.4.5 — all <code>@astryxdesign/*</code> packages ship at this version.</p>
   <pre lang="bash"><code>npx astryx upgrade --apply
   </code></pre>
   <h2><code>@​astryxdesign/core</code></h2>
   <h3>New Features</h3>
   <ul>
   <li>
   <p>BottomSheet: <code>snapPoints</code> makes the drag-to-resize stops the host's choice. A stop is the sheet's visible height, written as a viewport fraction (<code>0.5</code>), a percentage (<code>'50%'</code>), or a px length (<code>'320px'</code>) — matching <code>height</code>, where a bare number is also px and a string carries its unit. Fractions and percentages re-resolve when the viewport changes, so a sheet keeps the stop the user chose across a rotation, and swapping the points under a resting sheet re-anchors it the same way. A stop of a quarter of the sheet or less is a peek: it slides away rather than reflowing into a sliver, and thins the scrim. Taller stops are working surfaces, so they lay their content out and keep the scrim full — previously the shortest stop was always a peek, which would have thinned the backdrop of a half-height sheet (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5203">#5203</a>).
   Behavior change, deliberate and not breaking: every sheet used to carry three built-in stops (14%, 50% and 92% of the viewport), so a drag could leave it resting somewhere the host never asked for. A sheet now opens and closes unless <code>snapPoints</code> says otherwise; pass <code>snapPoints={[0.14, 0.5, 0.92]}</code> to keep the old stops. No prop, type, or DOM output was removed or renamed, and swipe-to-dismiss, the height budgets, and mobile-keyboard accommodation are untouched.</p>
   </li>
   <li>
   <p>Astryx ships translations for 28 more locales. <code>packages/core/locales/</code> went from <code>en</code> and <code>fr-FR</code> to 30 files — Arabic, Catalan, Chinese (Simplified and Traditional), Czech, Danish, Dutch, Finnish, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Romanian, Russian, Serbian, Spanish, Swedish, Turkish, Ukrainian, Vietnamese and Afrikaans — covering every <code>@astryx.*</code> message the components announce or display (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5185">#5185</a>).
   Nothing changes unless you ask for it: <code>InternationalizationProvider</code> still defaults to English, and the catalogs are loaded through the existing <code>./locales/*.json</code> export. An app that already passes a <code>locale</code> now gets translated component strings where it previously fell back to English.</p>
   <p>The catalogs come from Crowdin and are refreshed nightly (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5186">#5186</a>), so a translation landing upstream reaches a release without anyone opening a PR by hand.</p>
   </li>
   <li>
   <p>DateRangeInput / Calendar: add <code>maxRangeSpan</code> and <code>minRangeSpan</code> to constrain the size of a selected range. Once a start date is picked, days outside the allowed window are disabled — e.g. <code>maxRangeSpan={7}</code> keeps the range within a 7-day window of the start (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5145">#5145</a>).</p>
   </li>
   <li>
   <p>FormLayout: add <code>defaultOptionality</code> — set a form-wide default (<code>'optional'</code> or <code>'required'</code>) so only the exception carries a visible indicator. Under <code>'optional'</code> only <code>isRequired</code> fields show one; under <code>'required'</code> only <code>isOptional</code> fields do; a field that restates the default shows nothing. Under <code>'required'</code> the unmarked fields also expose <code>aria-required</code> so screen readers match what sighted users see — resolved on <code>aria-required</code> only, never the native <code>required</code> attribute. Unset keeps today's per-field behavior (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4791">#4791</a>).</p>
   </li>
   <li>
   <p>Add <code>astryx-input-clear-button</code> theme target on the shared clear button wrapper. Themes can now control the clear button's height and hover independently of other ghost buttons — for example suppressing the hover fill or matching a different element size scale (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5093">#5093</a>).</p>
   </li>
   </ul>
   <h3>Fixes</h3>
   <ul>
   <li>BottomSheet: a pull up from the scroll area now expands the sheet on iOS. Below the tallest detent, dragging up inside the content did nothing on a real device while the grab handle worked — the sheet took the gesture and then froze for the rest of the pull. iOS Safari raises PointerEvents for a finger under the same numeric id it puts in <code>Touch.identifier</code>, so the drag the touch path started was keyed to a live pointer: <code>beginDrag</code> captured that pointer, WebKit handed the capture straight back, and the <code>lostpointercapture</code> a millisecond later cancelled the drag. Touch-driven drags are now marked as such — they take no pointer capture, and <code>lostpointercapture</code>, <code>pointercancel</code> and <code>pointermove</code> for that same finger no longer cancel, end or double-drive them. Browsers that keep the two id spaces apart were never affected, which is why this only showed up on device (<a href="https://github.com/facebook/astryx/
 tree/HEAD/packages/core/issues/5178">#5178</a>).</li>
   <li>Calendar weekday headers now use compact CLDR stand-alone-short names for the selected locale, while preserving the existing <code>Su</code> / <code>Mo</code> / <code>Tu</code> English labels.</li>
   <li>Render generated id attributes on Markdown headings so Outline hash links scroll to their target. Heading slugs now come from parser helpers shared with parseOutlineFromMarkdown, and the components.heading override receives the generated id (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4765">#4765</a>).</li>
   <li>StatusDot: pair each variant with a distinct built-in shape drawn from the system's semantic icon vocabulary — success a check, warning an exclamation, error a cross, neutral a ring, accent the plain filled dot — so status no longer relies on colour alone (WCAG 2.1 SC 1.4.1). The shapes mirror the marks <code>Banner</code>/<code>FieldStatus</code> render via <code>defaultIcons</code>, a different axis of consistency from <code>AvatarStatusDot</code>'s presence shapes (the two share only the neutral ring, intentionally). The diagonal check and cross take a slightly heavier stroke so they stay crisp and distinct at 8px. Also adds an <code>icon</code> prop for API parity with <code>AvatarStatusDot</code>: a rendered icon replaces the built-in glyph, while booleans and empty renders are ignored so <code>cond &amp;&amp; &lt;Icon /&gt;</code> stays safe. The built-in glyphs resolve through the icon registry under scoped <code>statusdot:&lt;variant&gt;</code> keys (the <code>rich
 text:*</code> precedent), so themes can reshape a variant's mark everywhere via <code>defineTheme({icons})</code> / <code>registerIcons</code> — including marks for augmented custom variants — while overrides of the standard 24px semantic icons deliberately do not leak into the 8px field. Themes can also target the new stable <code>astryx-statusdot-glyph</code> class and its <code>data-shape</code> attribute — a stroked inline <code>&lt;svg&gt;</code> painted from the dot's <code>currentColor</code> (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4373">#4373</a>).</li>
   <li><code>Table</code>'s row-expansion chevron now mirrors correctly under RTL. It previously rotated on expand with no RTL handling at all, so the directional glyph pointed the same way regardless of text direction, matching the pattern already used by <code>TreeListItem</code>'s chevron (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5153">#5153</a>).</li>
   </ul>
   <h2>Contributors</h2>
   <p>Thanks to everyone who contributed to this release:</p>
   <p><a href="https://github.com/athz"><code>@​athz</code></a> <a href="https://github.com/bhamodi"><code>@​bhamodi</code></a> <a href="https://github.com/cixzhang"><code>@​cixzhang</code></a> <a href="https://github.com/freddymeta"><code>@​freddymeta</code></a> <a href="https://github.com/HelloOjasMutreja"><code>@​HelloOjasMutreja</code></a> <a href="https://github.com/imdreamrunner"><code>@​imdreamrunner</code></a> <a href="https://github.com/jiunshinn"><code>@​jiunshinn</code></a> <a href="https://github.com/nynexman4464"><code>@​nynexman4464</code></a></p>
   <p><strong>Full Changelog</strong>: <a href="https://github.com/facebook/astryx/compare/v0.4.4...v0.4.5">https://github.com/facebook/astryx/compare/v0.4.4...v0.4.5</a></p>
   <h2>v0.4.4</h2>
   <p>Astryx 0.4.4 — all <code>@astryxdesign/*</code> packages ship at this version.</p>
   <pre lang="bash"><code>npx astryx upgrade --apply
   </code></pre>
   <h2><code>@​astryxdesign/core</code></h2>
   <h3>New Components</h3>
   <ul>
   <li>Promote <code>BottomSheet</code> and <code>BottomSheetSwitcher</code> from the canary-only Lab package to Core. The stable package now includes their existing native-dialog, drag-detent, transition, and mobile-keyboard behavior, plus Core documentation and examples (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5080">#5080</a>).</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/blob/main/packages/core/CHANGELOG.md">@​astryxdesign/core's changelog</a>.</em></p>
   <blockquote>
   <h1>0.4.5</h1>
   <h4>New Features</h4>
   <ul>
   <li>
   <p>BottomSheet: <code>snapPoints</code> makes the drag-to-resize stops the host's choice. A stop is the sheet's visible height, written as a viewport fraction (<code>0.5</code>), a percentage (<code>'50%'</code>), or a px length (<code>'320px'</code>) — matching <code>height</code>, where a bare number is also px and a string carries its unit. Fractions and percentages re-resolve when the viewport changes, so a sheet keeps the stop the user chose across a rotation, and swapping the points under a resting sheet re-anchors it the same way. A stop of a quarter of the sheet or less is a peek: it slides away rather than reflowing into a sliver, and thins the scrim. Taller stops are working surfaces, so they lay their content out and keep the scrim full — previously the shortest stop was always a peek, which would have thinned the backdrop of a half-height sheet (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5203">#5203</a>).
   Behavior change, deliberate and not breaking: every sheet used to carry three built-in stops (14%, 50% and 92% of the viewport), so a drag could leave it resting somewhere the host never asked for. A sheet now opens and closes unless <code>snapPoints</code> says otherwise; pass <code>snapPoints={[0.14, 0.5, 0.92]}</code> to keep the old stops. No prop, type, or DOM output was removed or renamed, and swipe-to-dismiss, the height budgets, and mobile-keyboard accommodation are untouched.</p>
   </li>
   <li>
   <p>Astryx ships translations for 28 more locales. <code>packages/core/locales/</code> went from <code>en</code> and <code>fr-FR</code> to 30 files — Arabic, Catalan, Chinese (Simplified and Traditional), Czech, Danish, Dutch, Finnish, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Romanian, Russian, Serbian, Spanish, Swedish, Turkish, Ukrainian, Vietnamese and Afrikaans — covering every <code>@astryx.*</code> message the components announce or display (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5185">#5185</a>).
   Nothing changes unless you ask for it: <code>InternationalizationProvider</code> still defaults to English, and the catalogs are loaded through the existing <code>./locales/*.json</code> export. An app that already passes a <code>locale</code> now gets translated component strings where it previously fell back to English.</p>
   <p>The catalogs come from Crowdin and are refreshed nightly (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5186">#5186</a>), so a translation landing upstream reaches a release without anyone opening a PR by hand.</p>
   </li>
   <li>
   <p>DateRangeInput / Calendar: add <code>maxRangeSpan</code> and <code>minRangeSpan</code> to constrain the size of a selected range. Once a start date is picked, days outside the allowed window are disabled — e.g. <code>maxRangeSpan={7}</code> keeps the range within a 7-day window of the start (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5145">#5145</a>).</p>
   </li>
   <li>
   <p>FormLayout: add <code>defaultOptionality</code> — set a form-wide default (<code>'optional'</code> or <code>'required'</code>) so only the exception carries a visible indicator. Under <code>'optional'</code> only <code>isRequired</code> fields show one; under <code>'required'</code> only <code>isOptional</code> fields do; a field that restates the default shows nothing. Under <code>'required'</code> the unmarked fields also expose <code>aria-required</code> so screen readers match what sighted users see — resolved on <code>aria-required</code> only, never the native <code>required</code> attribute. Unset keeps today's per-field behavior (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4791">#4791</a>).</p>
   </li>
   <li>
   <p>Add <code>astryx-input-clear-button</code> theme target on the shared clear button wrapper. Themes can now control the clear button's height and hover independently of other ghost buttons — for example suppressing the hover fill or matching a different element size scale (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5093">#5093</a>).</p>
   </li>
   </ul>
   <h4>Fixes</h4>
   <ul>
   <li>BottomSheet: a pull up from the scroll area now expands the sheet on iOS. Below the tallest detent, dragging up inside the content did nothing on a real device while the grab handle worked — the sheet took the gesture and then froze for the rest of the pull. iOS Safari raises PointerEvents for a finger under the same numeric id it puts in <code>Touch.identifier</code>, so the drag the touch path started was keyed to a live pointer: <code>beginDrag</code> captured that pointer, WebKit handed the capture straight back, and the <code>lostpointercapture</code> a millisecond later cancelled the drag. Touch-driven drags are now marked as such — they take no pointer capture, and <code>lostpointercapture</code>, <code>pointercancel</code> and <code>pointermove</code> for that same finger no longer cancel, end or double-drive them. Browsers that keep the two id spaces apart were never affected, which is why this only showed up on device (<a href="https://github.com/facebook/astryx/
 tree/HEAD/packages/core/issues/5178">#5178</a>).</li>
   <li>Calendar weekday headers now use compact CLDR stand-alone-short names for the selected locale, while preserving the existing <code>Su</code> / <code>Mo</code> / <code>Tu</code> English labels.</li>
   <li>Render generated id attributes on Markdown headings so Outline hash links scroll to their target. Heading slugs now come from parser helpers shared with parseOutlineFromMarkdown, and the components.heading override receives the generated id (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4765">#4765</a>).</li>
   <li>StatusDot: pair each variant with a distinct built-in shape drawn from the system's semantic icon vocabulary — success a check, warning an exclamation, error a cross, neutral a ring, accent the plain filled dot — so status no longer relies on colour alone (WCAG 2.1 SC 1.4.1). The shapes mirror the marks <code>Banner</code>/<code>FieldStatus</code> render via <code>defaultIcons</code>, a different axis of consistency from <code>AvatarStatusDot</code>'s presence shapes (the two share only the neutral ring, intentionally). The diagonal check and cross take a slightly heavier stroke so they stay crisp and distinct at 8px. Also adds an <code>icon</code> prop for API parity with <code>AvatarStatusDot</code>: a rendered icon replaces the built-in glyph, while booleans and empty renders are ignored so <code>cond &amp;&amp; &lt;Icon /&gt;</code> stays safe. The built-in glyphs resolve through the icon registry under scoped <code>statusdot:&lt;variant&gt;</code> keys (the <code>rich
 text:*</code> precedent), so themes can reshape a variant's mark everywhere via <code>defineTheme({icons})</code> / <code>registerIcons</code> — including marks for augmented custom variants — while overrides of the standard 24px semantic icons deliberately do not leak into the 8px field. Themes can also target the new stable <code>astryx-statusdot-glyph</code> class and its <code>data-shape</code> attribute — a stroked inline <code>&lt;svg&gt;</code> painted from the dot's <code>currentColor</code> (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4373">#4373</a>).</li>
   <li><code>Table</code>'s row-expansion chevron now mirrors correctly under RTL. It previously rotated on expand with no RTL handling at all, so the directional glyph pointed the same way regardless of text direction, matching the pattern already used by <code>TreeListItem</code>'s chevron (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5153">#5153</a>).</li>
   </ul>
   <h4>Contributors</h4>
   <p>Thanks to everyone who contributed to this release:</p>
   <ul>
   <li><a href="https://github.com/athz"><code>@​athz</code></a></li>
   <li><a href="https://github.com/bhamodi"><code>@​bhamodi</code></a></li>
   <li><a href="https://github.com/cixzhang"><code>@​cixzhang</code></a></li>
   <li><a href="https://github.com/freddymeta"><code>@​freddymeta</code></a></li>
   <li><a href="https://github.com/HelloOjasMutreja"><code>@​HelloOjasMutreja</code></a></li>
   <li><a href="https://github.com/imdreamrunner"><code>@​imdreamrunner</code></a></li>
   <li><a href="https://github.com/jiunshinn"><code>@​jiunshinn</code></a></li>
   <li><a href="https://github.com/nynexman4464"><code>@​nynexman4464</code></a></li>
   </ul>
   <hr />
   <h1>0.4.4</h1>
   <h4>New Components</h4>
   <ul>
   <li>Promote <code>BottomSheet</code> and <code>BottomSheetSwitcher</code> from the canary-only Lab package to Core. The stable package now includes their existing native-dialog, drag-detent, transition, and mobile-keyboard behavior, plus Core documentation and examples (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5080">#5080</a>).</li>
   </ul>
   <h4>New Features</h4>
   <ul>
   <li>
   <p><code>astryx template --cdn</code> writes a working no-build-step CDN starter page (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5068">#5068</a>).
   A CDN starter is a template, so it joins the template family beside <code>--skeleton</code> rather than claiming a top-level command. It is a flag and not the positional <code>astryx template cdn</code> because the positional resolves against everything <code>discoverAll()</code> finds, where a <code>cdn</code> id would shadow a discovered template. <code>cdn.template.html</code> loads Astryx from jsDelivr and esm.sh with no bundler, no install and no build step, with every CDN URL pinned to the Astryx version you have installed — an unpinned CDN URL resolves to whatever is latest and is cached hard, so a page written today breaks tomorrow without being edited. An existing file is never clobbered; <code>--overwrite</code> replaces it, and <code>--json</code> returns the receipt.</p>
   <p>The annotations are the things that are load-bearing and silent when missing: <code>?external=react,react-dom</code> (without it esm.sh bundles a second React and every hook throws <code>Cannot read properties of null (reading 'useState')</code>), <code>react/jsx-runtime</code> in the import map (the published bundle imports it; omitting it fails the page with <code>Failed to resolve module specifier</code>), and a <code>font-family</code> on <code>body</code> (nothing in the stylesheets sets a document font, so <code>Button</code> — which is <code>font: inherit</code> — otherwise renders its label in the browser's default serif).</p>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/facebook/astryx/commit/683015aa9b3f4ba258dc7e4c8f2cc274afce46a5"><code>683015a</code></a> chore: version packages for v0.4.5</li>
   <li><a href="https://github.com/facebook/astryx/commit/46b0532515447add74048186587ca049532a9987"><code>46b0532</code></a> fix(Calendar): localize compact weekday headers from CLDR (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5190">#5190</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/6bd4a757835a076de4d46b4556ead8ed5131232b"><code>6bd4a75</code></a> fix(core): render Markdown heading ids so Outline links scroll (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4173">#4173</a>) (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4765">#4765</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/0e8af82848caf1cc1d8e83a4a440b39f2338cab0"><code>0e8af82</code></a> feat(core): let the Bottom Sheet's host choose its snap points (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5203">#5203</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/1cd52d97d7a04b2b80ebce416e05525196319fc3"><code>1cd52d9</code></a> feat(DateRangeInput): add maxRangeSpan/minRangeSpan to constrain range size (...</li>
   <li><a href="https://github.com/facebook/astryx/commit/22e61b523042051537ba4cd1ac01dfbddac18f61"><code>22e61b5</code></a> feat(FormLayout): add defaultOptionality — mark only the exception (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4791">#4791</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/0f4d45f88dc480da2185f6cd028feac993b45020"><code>0f4d45f</code></a> fix(core): add StatusDot icon prop; keep the dot a plain colored signal (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/4373">#4373</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/ea7fc8cba338e0bcbca609a20b6bf20148826698"><code>ea7fc8c</code></a> fix(Table): mirror the row-expansion chevron under RTL (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5153">#5153</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/955be1908bea485e7275917d4239d3add56c20dd"><code>955be19</code></a> feat(core): add input-clear-button theme target on the shared clear button wr...</li>
   <li><a href="https://github.com/facebook/astryx/commit/dd146da01d83028836127ce7d61aa4c1da55c141"><code>dd146da</code></a> chore(i18n): translations update from Crowdin (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/core/issues/5185">#5185</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/facebook/astryx/commits/v0.4.5/packages/core">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@biomejs/biome` from 2.5.6 to 2.5.9
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/biomejs/biome/releases">@​biomejs/biome's releases</a>.</em></p>
   <blockquote>
   <h2>Biome CLI v2.5.9</h2>
   <h2>2.5.9</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11321">#11321</a> <a href="https://github.com/biomejs/biome/commit/41386f38935b299f1a1f759a2c7fdd5c2050bded"><code>41386f3</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11315">#11315</a>: The CSS parser now recovers at declaration boundaries after bogus declarations, allowing subsequent valid declarations to be parsed.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11248">#11248</a> <a href="https://github.com/biomejs/biome/commit/57b197e6d5a2432ff6904afff24125e4d8ec01cd"><code>57b197e</code></a> Thanks <a href="https://github.com/yanthomasdev"><code>@​yanthomasdev</code></a>! - Expanded the environment variable metadata used by <code>biome rage</code> to include <code>BIOME_BINARY</code>, <code>BIOME_LOG_FILE</code>, and <code>RUST_BACKTRACE</code> as well as reworded explanations for better readability.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11377">#11377</a> <a href="https://github.com/biomejs/biome/commit/a8798ea9f2569fab4524704c99a8e2fe45c2ca32"><code>a8798ea</code></a> Thanks <a href="https://github.com/Netail"><code>@​Netail</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/use-named-layer"><code>useNamedLayer</code></a> which disallows anonymous cascade layers.</p>
   <pre lang="css"><code>@layer {
     a {
       color: red;
     }
   }
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11327">#11327</a> <a href="https://github.com/biomejs/biome/commit/6771cf5bd2e64f256468a33b811adec8e793d933"><code>6771cf5</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - The HTML formatter now preserves meaningful blank lines in HTML, including spacing after elements with trailing spaces and blank lines between comment groups.</p>
   <pre lang="diff"><code> &lt;div&gt;
      &lt;!-- first group --&gt;
   +
      &lt;!-- second group --&gt;
    &lt;/div&gt;
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/10312">#10312</a> <a href="https://github.com/biomejs/biome/commit/ba8aa183371b3080691ed80e5a9f6f0239cf451b"><code>ba8aa18</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-tailwind-shorthand-classes/"><code>useTailwindShorthandClasses</code></a>, which suggests shorter Tailwind utility classes. For example, the rule suggests replacing <code>w-4 h-4</code> with <code>size-4</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11333">#11333</a> <a href="https://github.com/biomejs/biome/commit/715e0cd1b3e6c88d153554901a659378c728e408"><code>715e0cd</code></a> Thanks <a href="https://github.com/kkkhs"><code>@​kkkhs</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11328">#11328</a>: <code>lint/nursery/useExpect</code> now recognizes Vitest Browser Mode <code>expect.element()</code> calls as assertions.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11343">#11343</a> <a href="https://github.com/biomejs/biome/commit/9b982113dba8b37c163662d59611ecba0fc02f5a"><code>9b98211</code></a> Thanks <a href="https://github.com/johncarmack1984"><code>@​johncarmack1984</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11311">#11311</a>: the CSS parser now accepts Tailwind container-query variant names in <code>@variant</code>, such as <code>@xl</code> and <code>@max-xl</code>. These previously produced a parse error and a <a href="https://biomejs.dev/linter/rules/no-unknown-at-rules/"><code>noUnknownAtRules</code></a> diagnostic.</p>
   <pre lang="css"><code>@variant @xl {
     div {
       background: red;
     }
   }
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11220">#11220</a> <a href="https://github.com/biomejs/biome/commit/3e8c4887c4ef87df45f56aafa4fbc5f497dae42f"><code>3e8c488</code></a> Thanks <a href="https://github.com/santichausis"><code>@​santichausis</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9541">#9541</a>: <a href="https://biomejs.dev/linter/rules/no-undeclared-variables/"><code>noUndeclaredVariables</code></a>, <a href="https://biomejs.dev/linter/rules/no-unused-imports/"><code>noUnusedImports</code></a>, and <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> now correctly recognise exported variables and functions declared in one embedded <code>&lt;script&gt;</code> block as usable from a sibling <code>&lt;script&gt;</code> block, in Svelte's <code>&lt;script module&gt;</code>/<code>&lt;script&gt;</code> pair and Vue's non-<code>setup</code> <code>&lt;script&gt;</code> blocks.</p>
   <p>For example, Biome no longer reports <code>greet</code> as undeclared in the following Svelte component:</p>
   <pre lang="svelte"><code>&lt;script module&gt;
   </code></pre>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md">@​biomejs/biome's changelog</a>.</em></p>
   <blockquote>
   <h2>2.5.9</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11321">#11321</a> <a href="https://github.com/biomejs/biome/commit/41386f38935b299f1a1f759a2c7fdd5c2050bded"><code>41386f3</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11315">#11315</a>: The CSS parser now recovers at declaration boundaries after bogus declarations, allowing subsequent valid declarations to be parsed.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11248">#11248</a> <a href="https://github.com/biomejs/biome/commit/57b197e6d5a2432ff6904afff24125e4d8ec01cd"><code>57b197e</code></a> Thanks <a href="https://github.com/yanthomasdev"><code>@​yanthomasdev</code></a>! - Expanded the environment variable metadata used by <code>biome rage</code> to include <code>BIOME_BINARY</code>, <code>BIOME_LOG_FILE</code>, and <code>RUST_BACKTRACE</code> as well as reworded explanations for better readability.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11377">#11377</a> <a href="https://github.com/biomejs/biome/commit/a8798ea9f2569fab4524704c99a8e2fe45c2ca32"><code>a8798ea</code></a> Thanks <a href="https://github.com/Netail"><code>@​Netail</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/use-named-layer"><code>useNamedLayer</code></a> which disallows anonymous cascade layers.</p>
   <pre lang="css"><code>@layer {
     a {
       color: red;
     }
   }
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11327">#11327</a> <a href="https://github.com/biomejs/biome/commit/6771cf5bd2e64f256468a33b811adec8e793d933"><code>6771cf5</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - The HTML formatter now preserves meaningful blank lines in HTML, including spacing after elements with trailing spaces and blank lines between comment groups.</p>
   <pre lang="diff"><code> &lt;div&gt;
      &lt;!-- first group --&gt;
   +
      &lt;!-- second group --&gt;
    &lt;/div&gt;
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/10312">#10312</a> <a href="https://github.com/biomejs/biome/commit/ba8aa183371b3080691ed80e5a9f6f0239cf451b"><code>ba8aa18</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-tailwind-shorthand-classes/"><code>useTailwindShorthandClasses</code></a>, which suggests shorter Tailwind utility classes. For example, the rule suggests replacing <code>w-4 h-4</code> with <code>size-4</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11333">#11333</a> <a href="https://github.com/biomejs/biome/commit/715e0cd1b3e6c88d153554901a659378c728e408"><code>715e0cd</code></a> Thanks <a href="https://github.com/kkkhs"><code>@​kkkhs</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11328">#11328</a>: <code>lint/nursery/useExpect</code> now recognizes Vitest Browser Mode <code>expect.element()</code> calls as assertions.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11343">#11343</a> <a href="https://github.com/biomejs/biome/commit/9b982113dba8b37c163662d59611ecba0fc02f5a"><code>9b98211</code></a> Thanks <a href="https://github.com/johncarmack1984"><code>@​johncarmack1984</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11311">#11311</a>: the CSS parser now accepts Tailwind container-query variant names in <code>@variant</code>, such as <code>@xl</code> and <code>@max-xl</code>. These previously produced a parse error and a <a href="https://biomejs.dev/linter/rules/no-unknown-at-rules/"><code>noUnknownAtRules</code></a> diagnostic.</p>
   <pre lang="css"><code>@variant @xl {
     div {
       background: red;
     }
   }
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11220">#11220</a> <a href="https://github.com/biomejs/biome/commit/3e8c4887c4ef87df45f56aafa4fbc5f497dae42f"><code>3e8c488</code></a> Thanks <a href="https://github.com/santichausis"><code>@​santichausis</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9541">#9541</a>: <a href="https://biomejs.dev/linter/rules/no-undeclared-variables/"><code>noUndeclaredVariables</code></a>, <a href="https://biomejs.dev/linter/rules/no-unused-imports/"><code>noUnusedImports</code></a>, and <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> now correctly recognise exported variables and functions declared in one embedded <code>&lt;script&gt;</code> block as usable from a sibling <code>&lt;script&gt;</code> block, in Svelte's <code>&lt;script module&gt;</code>/<code>&lt;script&gt;</code> pair and Vue's non-<code>setup</code> <code>&lt;script&gt;</code> blocks.</p>
   <p>For example, Biome no longer reports <code>greet</code> as undeclared in the following Svelte component:</p>
   <pre lang="svelte"><code>&lt;script module&gt;
     export function greet() {
       console.log(&quot;Hello!&quot;);
   </code></pre>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/biomejs/biome/commit/208146010946ce47fb9396b9a2d6c9b9226e2d25"><code>2081460</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11309">#11309</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/6559e6ced6d4ebe8c26e818931df15d02829130d"><code>6559e6c</code></a> feat: adds the <code>useAstroClientOnlyDirectiveValue</code> rule for .astro files (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11299">#11299</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/a8798ea9f2569fab4524704c99a8e2fe45c2ca32"><code>a8798ea</code></a> feat: useNamedLayer (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11377">#11377</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/85aac73d32a5f4a0db7bab3ebd195e35b32d513d"><code>85aac73</code></a> feat(lint): add <code>noUnsafeTypeAssertion</code> rule (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11221">#11221</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/e65f07e06342c7d8d74b98ff219d72c7e081b4f2"><code>e65f07e</code></a> feat(lint): nursery useControlLabel (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11312">#11312</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/ba8aa183371b3080691ed80e5a9f6f0239cf451b"><code>ba8aa18</code></a> feat(lint): add <code>useTailwindShorthandClasses</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10312">#10312</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/6b8f09c04394f2a9f72b89f9381724681169641a"><code>6b8f09c</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11236">#11236</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/23c0369c43b59284ca68c65883d6ede4228b6fb8"><code>23c0369</code></a> feat(lint): nursery noInvalidPropertyInitValue (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11187">#11187</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/52b44d6795741d051bf703bd69c6cb447af8fd1d"><code>52b44d6</code></a> feat(lint/html): add <code>noSvelteLegacyConst</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11247">#11247</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/0a0fbc15d67c410c80dfae398903f845544fcd65"><code>0a0fbc1</code></a> feat(lint/js): add <code>useReactCompiler</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10710">#10710</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.9/packages/@biomejs/biome">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@types/node` from 26.1.2 to 26.2.0
   <details>
   <summary>Commits</summary>
   <ul>
   <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `knip` from 6.26.0 to 6.32.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/webpro-nl/knip/releases">knip's releases</a>.</em></p>
   <blockquote>
   <h2>Release 6.32.2</h2>
   <ul>
   <li>Support <code>oxfmt.config.mts</code> (<a href="https://github.c...
   
   _Description has been truncated_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 26 updates [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3640:
URL: https://github.com/apache/maka/pull/3640#discussion_r3839181181


##########
scripts/generate-third-party-notices.mjs:
##########
@@ -155,6 +157,12 @@ const MIT_COPYRIGHT_OVERRIDES = new Map([
   // Published from TooTallNate/proxy-agents, which keeps its LICENSE at the
   // repo root; the per-package tarball ships no license file.
   ['proxy-agent-negotiate@1.1.0', 'Copyright (c) 2013 Nathan Rajlich <na...@tootallnate.net>'],
+  // The published tarball and upstream repository omit a LICENSE file;
+  // package.json declares MIT and the distributed source names both authors.
+  ['fastdom@1.0.12', 'Copyright (c) Wilson Page and Kornel Lesinski'],

Review Comment:
   [P1] These two override entries publish copyright notices that do not match the packages they claim to represent, and the `fastdom` one names a copyright holder upstream never asserted.
   
   I verified this against the exact tarballs pinned by this PR's lockfile:
   
   | package | upstream notice | this PR generates |
   |---|---|---|
   | `fastdom@1.0.12` | `Copyright (c) 2016 Wilson Page <wi...@me.com>` | `Copyright (c) Wilson Page and Kornel Lesinski` |
   | `strictdom@1.0.1` | `Copyright (c) 2013 Wilson Page <wi...@me.com>` | `Copyright (c) Wilson Page` |
   
   The generated bytes land at `apps/desktop/resources/licenses/npm/THIRD_PARTY_NOTICES.txt:7868` and `:12095`. Neither string exists on `main` today, so this PR introduces both.
   
   The comment above these entries is half right: the tarballs genuinely ship no `LICENSE` file. But they do carry the full MIT block, including the copyright line, in `README.md`. So the notice was available and was not consulted — the holder was instead inferred from the source's `@author`/contributor list, which is how Kornel Lesinski became a co-holder of a copyright he was never granted in the upstream notice, and how both years and the contact address were dropped.
   
   That matters because MIT's condition is to retain *the above copyright notice* verbatim. Paraphrasing it is already non-compliant; synthesizing a co-holder is a stronger claim than the upstream text makes. On an ASF release artifact this is worth getting exactly right.
   
   Root cause is narrow: `readLicenseFiles()` only matches files whose names begin with `LICENSE`/`COPYING`/`NOTICE`, so for these two packages it finds nothing and the hand-written override becomes the sole authority. Every downstream guard (`--check`, the release-contract test, the renderer byte check) then verifies the committed output against that same override, which is why they all pass while the bytes are wrong.
   
   Suggested fix: copy the complete MIT block out of each exact version's `README.md`, or extract the README license section under a version+digest pin. Either way, do not derive a copyright notice from `@author` or a contributor list.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 26 updates [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3640:
URL: https://github.com/apache/maka/pull/3640#discussion_r3839268833


##########
scripts/generate-third-party-notices.mjs:
##########
@@ -155,6 +157,12 @@ const MIT_COPYRIGHT_OVERRIDES = new Map([
   // Published from TooTallNate/proxy-agents, which keeps its LICENSE at the
   // repo root; the per-package tarball ships no license file.
   ['proxy-agent-negotiate@1.1.0', 'Copyright (c) 2013 Nathan Rajlich <na...@tootallnate.net>'],
+  // The published tarball and upstream repository omit a LICENSE file;
+  // package.json declares MIT and the distributed source names both authors.
+  ['fastdom@1.0.12', 'Copyright (c) Wilson Page and Kornel Lesinski'],

Review Comment:
   Fixed in `9f1168c49`. The synthesized author/contributor-based overrides are gone. `fastdom@1.0.12` and `strictdom@1.0.1` now use the complete version-pinned MIT blocks from their distributed `README.md`, including the original years and contact address.
   
   I added a regression test for both exact notices and the absence of the synthesized Kornel Lesinski copyright claim, regenerated the Desktop notices, and byte-compared both generated blocks against the installed exact-version README sections. The notice check, source legal inventory, format/lint, and all hosted checks pass at this head.
   
   Automated reply by Codex.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 26 updates [maka]

Posted by "ARE404 (via GitHub)" <gi...@apache.org>.
ARE404 commented on code in PR #3640:
URL: https://github.com/apache/maka/pull/3640#discussion_r3839173353


##########
apps/desktop/package.json:
##########
@@ -52,36 +52,36 @@
     "electron-updater": "^6.8.9",
     "node-pty": "^1.2.0-beta.15",
     "qrcode": "^1.5.4",
-    "ws": "^8.21.0",
+    "ws": "^8.21.3",
     "zod": "^4.4.3"
   },
   "devDependencies": {
     "@ant-design/icons-svg": "4.5.0",
-    "@astryxdesign/core": "0.4.0",
-    "@astryxdesign/theme-neutral": "0.4.0",
+    "@astryxdesign/core": "0.4.5",

Review Comment:
   [P3] Please add representative before/after screenshots or a recording for this design-system bump. `CONTRIBUTING.md` requires visual evidence for UI changes, and Astryx 0.4.5 includes visible component updates (for example StatusDot glyphs, TreeList spacing, and selector/menu presentation) in addition to the regenerated Maka theme. The current PR description has no visual evidence, so those upstream appearance changes are not reviewable from the PR itself.



##########
packages/ui/src/__tests__/composer-plus-menu.test.tsx:
##########
@@ -27,28 +27,78 @@
  * is chosen at rest, and no row stands for that; every prop that feeds them is
  * optional, so a host can wire the modes alone, and then there is nothing
  * above the divider to divide.
+ *
+ * Astryx mounts DropdownMenu layers from a client ref, so the rows are not in
+ * server markup. The assertions observe the same document after that mount.
  */
 
 import assert from 'node:assert/strict';
-import test from 'node:test';
-import { renderToStaticMarkup } from 'react-dom/server';
+import { afterEach, test } from 'node:test';
+import { act } from 'react';
+import { createRoot } from 'react-dom/client';
+import { parseHTML } from 'linkedom';
 import { Composer } from '../composer.js';
 import { LocaleProvider } from '../locale-context.js';
 
-function render(props: Parameters<typeof Composer>[0]): string {
-  return renderToStaticMarkup(
-    <LocaleProvider locale="en">
-      <Composer {...props} />
-    </LocaleProvider>,
-  );
+const originalGlobals = {
+  document: globalThis.document,
+  matchMedia: globalThis.matchMedia,
+  requestAnimationFrame: globalThis.requestAnimationFrame,
+  cancelAnimationFrame: globalThis.cancelAnimationFrame,
+  window: globalThis.window,
+};
+const originalActEnvironment = (globalThis as typeof globalThis & {
+  IS_REACT_ACT_ENVIRONMENT?: boolean;
+}).IS_REACT_ACT_ENVIRONMENT;
+const mountedRoots: ReturnType<typeof createRoot>[] = [];
+
+afterEach(async () => {
+  for (const root of mountedRoots.splice(0)) await act(() => root.unmount());
+  Object.assign(globalThis, {
+    ...originalGlobals,
+    IS_REACT_ACT_ENVIRONMENT: originalActEnvironment,
+  });
+});
+
+function computedStyle(): CSSStyleDeclaration {

Review Comment:
   [P3] Consider extracting the Linkedom/React client-mount environment into a shared test helper. This new setup duplicates the global replacement/restoration and identical `getComputedStyle` stub in `composer-send-toggle.test.tsx`; keeping two copies makes future Astryx layer-environment changes easy to apply to only one test.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 26 updates [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han merged PR #3640:
URL: https://github.com/apache/maka/pull/3640


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org