Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
There was a problem hiding this comment.
Approved pending CI: CI has not finished on this head yet.
This ports the merged test-only fix from #10756 to release/v0.7.12 unchanged. The reduced-motion mouse close in BottomSheetRelease.a11y.chromium.spec.ts now uses the file's timestamped mouseDrag helper, so the release speed it measures no longer depends on how fast the runner delivers input. The file matches main exactly, and every assertion and timeout is unchanged. With 200 ms delivery delays, the old input fails the same way the release gate did, and the new input passes.
[Automated review]
PR Analysis Report🔎 Preview ·
|
| Component | Size | LoC | Visual · A11y · RTL |
|---|---|---|---|
| BottomSheet | 65.1 kB (0) · 7.5 kB CSS (0) | — | ✓ · ✓ · — |
| BottomSheetSwitcher | 17.8 kB (0) · 3.4 kB CSS (0) | — | ✓ · ✓ · — |
Package size: measured; main has no measurement of the merge base to compare yet.
API changes: cli +14 · ~7 · −0 (against the merge base's committed report)
Committed API report behind this build: cli 21 rows, core 33 rows; run pnpm api:report.
21 API changes (advisory)
| Package | Where | Signature | Usage | |
|---|---|---|---|---|
| + | cli |
./api · Types · type SearchResultEntry |
deprecated?: ComponentDeprecation | undefined |
import type {SearchResultEntry} from '@astryxdesign/cli/api'; const x: SearchResultEntry = {deprecated: …} |
| + | cli |
./authoring · Types · interface ComponentDeprecation |
interface ComponentDeprecation |
import type {ComponentDeprecation} from '@astryxdesign/cli/authoring' |
| + | cli |
./authoring · Types · interface ComponentIconSlotDoc |
interface ComponentIconSlotDoc |
import type {ComponentIconSlotDoc} from '@astryxdesign/cli/authoring' |
| + | cli |
./authoring · Types · interface ComponentIconSlotStateDoc |
interface ComponentIconSlotStateDoc |
import type {ComponentIconSlotStateDoc} from '@astryxdesign/cli/authoring' |
| + | cli |
./authoring · Types · interface MultiComponentDoc |
deprecated?: ComponentDeprecation |
import type {MultiComponentDoc} from '@astryxdesign/cli/authoring'; const x: MultiComponentDoc = {deprecated: …} |
| + | cli |
./authoring · Types · interface SingleComponentDoc |
deprecated?: ComponentDeprecation |
import type {SingleComponentDoc} from '@astryxdesign/cli/authoring'; const x: SingleComponentDoc = {deprecated: …} |
| + | cli |
./doc · Types · interface ComponentBaseDoc |
deprecated?: ComponentDeprecation |
import type {ComponentBaseDoc} from '@astryxdesign/cli/doc'; const x: ComponentBaseDoc = {deprecated: …} |
| + | cli |
./doc · Types · interface SubComponentDoc |
deprecated?: ComponentDeprecation |
import type {SubComponentDoc} from '@astryxdesign/cli/doc'; const x: SubComponentDoc = {deprecated: …} |
| + | cli |
./doc · Also exported from an earlier entry point · ComponentDeprecation |
ComponentDeprecation (./authoring) |
import {ComponentDeprecation} from '@astryxdesign/cli/doc' |
| + | cli |
./doc · Also exported from an earlier entry point · ComponentIconSlotDoc |
ComponentIconSlotDoc (./authoring) |
import {ComponentIconSlotDoc} from '@astryxdesign/cli/doc' |
| + | cli |
./doc · Also exported from an earlier entry point · ComponentIconSlotStateDoc |
ComponentIconSlotStateDoc (./authoring) |
import {ComponentIconSlotStateDoc} from '@astryxdesign/cli/doc' |
| + | cli |
./template · Also exported from an earlier entry point · ComponentDeprecation |
ComponentDeprecation (./authoring) |
import {ComponentDeprecation} from '@astryxdesign/cli/template' |
| + | cli |
./template · Also exported from an earlier entry point · ComponentIconSlotDoc |
ComponentIconSlotDoc (./authoring) |
import {ComponentIconSlotDoc} from '@astryxdesign/cli/template' |
| + | cli |
./template · Also exported from an earlier entry point · ComponentIconSlotStateDoc |
ComponentIconSlotStateDoc (./authoring) |
import {ComponentIconSlotStateDoc} from '@astryxdesign/cli/template' |
| ~ | cli |
./api · Functions · function search |
function search: (query: string, options?: { cwd?: string | undefined; type?: "template" | "component" | "hook" | "theme" | "doc" | undefined; limit?: number | undefined }) => Promise<SearchResponse> → function search: (query: string, options?: { cwd?: string | undefined; type?: "template" | "component" | "doc" | "theme" | "hook" | undefined; limit?: number | undefined }) => Promise<SearchResponse> |
import {search} from '@astryxdesign/cli/api'; search(…) |
| ~ | cli |
./api · Types · type SwizzleCopyResponse |
data: { component: string; package: string; outputDir: string; filesCopied: number; files: string[]; usesStyleX: boolean; feedback?: SwizzleFeedback | undefined } → data: { component: string; package: string; outputDir: string; filesCopied: number; files: string[]; usesStyleX: boolean; dependencies: Record<string, string>; feedback?: SwizzleFeedback | undefined } |
import type {SwizzleCopyResponse} from '@astryxdesign/cli/api'; const x: SwizzleCopyResponse = {data: …} |
| ~ | cli |
./authoring · Types · interface MultiComponentDoc |
theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[] } → theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[]; componentIcons?: ComponentIconSlotDoc[] } |
import type {MultiComponentDoc} from '@astryxdesign/cli/authoring'; const x: MultiComponentDoc = {theming: …} |
| ~ | cli |
./authoring · Types · interface SingleComponentDoc |
theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[] } → theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[]; componentIcons?: ComponentIconSlotDoc[] } |
import type {SingleComponentDoc} from '@astryxdesign/cli/authoring'; const x: SingleComponentDoc = {theming: …} |
| ~ | cli |
./authoring · Types · type TemplateCategory |
type TemplateCategory = | 'Dashboard - Analytics' | 'Dashboard - Comparison' | 'Dashboard - KPI Summary' | 'Dashboard - Monitoring' | 'Dashboard - Executive Summary' | 'Dashboard - Sco … #e7c18378 → type TemplateCategory = | 'Dashboard - Analytics' | 'Dashboard - Comparison' | 'Dashboard - KPI Summary' | 'Dashboard - Monitoring' | 'Dashboard - Executive Summary' | 'Dashboard - Sco … #a8be998f |
import type {TemplateCategory} from '@astryxdesign/cli/authoring' |
| ~ | cli |
./doc · Types · interface ComponentBaseDoc |
theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[] } → theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[]; componentIcons?: ComponentIconSlotDoc[] } |
import type {ComponentBaseDoc} from '@astryxdesign/cli/doc'; const x: ComponentBaseDoc = {theming: …} |
| ~ | cli |
./doc · Types · interface SubComponentDoc |
theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[] } → theming?: { container?: boolean; targets: ComponentThemingTarget[]; vars?: ComponentThemingVar[]; derived?: ComponentThemingDerivedVar[]; componentIcons?: ComponentIconSlotDoc[] } |
import type {SubComponentDoc} from '@astryxdesign/cli/doc'; const x: SubComponentDoc = {theming: …} |
Touched components checked; add ci:run-visual, ci:run-a11y or ci:run-rtl to run the full suites.
Current run: CI concluded failure; parts of this report may be missing.
Generated by PR Enrichment workflow | View full report
There was a problem hiding this comment.
Changes requested: this pull request cannot merge into release/v0.7.12 as built.
- Found by CI: the required
testcheck fails because pull requests intorelease/v*run the generated-only release lane, whoserelease-bumpjob refusespackages/core/src/BottomSheet/__tests__/BottomSheetRelease.a11y.chromium.spec.tsas a non-generated path. - Miss: landing a commit merged to
mainafter the v0.7.12 cut on the release branch contradictsspec:AST-030FR12, which says the release cuts from the exact checked SHA and later commits remain next-release input.
The test change itself is sound: it matches the fix merged in #10756, and with 200 ms delivery delays the old input fails the way the release gate did while the new input passes. To unblock v0.7.12, ship the fix through a release cut that contains it, or change the release-branch rule in its own reviewed pull request first. CI treated this pull request as the release version bump and ran no browser contract, so the test has no CI evidence on this head.
[Automated review]
71338e3 to
46fdd6c
Compare
There was a problem hiding this comment.
Not ready to merge yet, although the change itself is sound: it is #10756's patch exactly, the release branch's own validator, run on a full clone, accepts it as the one test repair allowed after the version bump, and the changed test passed in this run's component accessibility contracts.
Required checks fail at this head because of release/v0.7.12 itself, not this change:
- Regression:
release-bumpstops withspawnSync git ENOBUFS, because the branch'sci.ymlnow fetches the base with--depth=200, which makes the checkout shallow, so the validator'sgit show --binaryof the depth-200 boundary commit overflows Node's 1 MiB output buffer. - Regression:
test-node (2/4)fails two tests in.github/scripts/touched-components.test.mjs, because the branch carries #10634'sci.ymlfallback without that pull request's test update.
pr-interaction (2/6) also failed one Lab NavigationStack frame-timing test that this change does not reach. A release owner needs to choose how the branch's carried policy gets fixed (for example a second policy carry from main), and then this repair rebases onto it and reruns every lane.
[Automated review]
Co-authored-by: astracat-bot[bot] <323722387+astracat-bot[bot]@users.noreply.github.com>
46fdd6c to
172c4f8
Compare
There was a problem hiding this comment.
Not ready to merge yet, although the change itself is sound: it is #10756's patch exactly, the release branch's own validator accepts it on full history as the one test repair allowed after the version bump, and the changed test passes in this head's component accessibility contracts.
The required release-bump check still fails at this head because of release/v0.7.12 itself, not this change: the branch's ci.yml fetches the base with --depth=200, so the validator treats the 200th commit as a root that adds this test file, and showing it (about 434 MB) overflows the 64 MiB buffer the final policy sync added. spec:AST-017 FR61 admits no further policy sync and no override, so a release or engineering owner needs to decide how v0.7.12 proceeds (for example an approved spec amendment for a third sync, or a recut). Nothing in this pull request needs to change.
[Automated review]
Maintainer impact
The v0.7.12 exact release-branch gate failed the same BottomSheet accessibility-contract test on its first run and its one allowed failed-jobs rerun: a synthetic mouse close sometimes waited past two seconds because its event timestamps depended on runner delivery speed.
This pull request ports the already merged test-only fix from #10756 onto
release/v0.7.12. It changes no component, package, story, workflow, assertion, or timeout.Intended invariant and change
Reuse the test file's timestamped
mouseDraghelper. Keep the downward mouse gesture and 150 px travel, pin it to 50 ms (3,000 px/s), and release 1 ms after the final move. The test now deterministically exercises its existing dismissal branch regardless of delayed event delivery.The port's stable patch ID exactly matches source commit
a0f2a2da8838.Evidence
BottomSheetRelease.a11y.chromium.spec.ts:294, expected hidden but remained visible after 2,000 ms; 365 sibling tests passed.Scope
Testing
0bcb81963a0e90030526a5db84a294d34a0e7189for both the release port and source commit.pnpm specs:for --diff origin/release/v0.7.12pnpm review:pre --base origin/release/v0.7.12