Skip to content

[Bug Bash] Tracker: manual QA findings and root-cause clusters #2877

Description

@cixzhang

Bug bash tracker

Use this issue as the rolling tracker for the current manual bug bash. As new findings come in, keep the list deduplicated and update the suspected root-cause clusters so we can see when one fix may close multiple reports.

Operating rules

  • Search existing open issues before adding a new row; link an existing issue instead of duplicating it when the behavior is already tracked.
  • Treat two reports as duplicates when the user-visible failure, component/page, and likely fix path are the same.
  • Treat reports as a shared root-cause cluster when one implementation/harness/docsite fix plausibly addresses multiple symptoms.
  • Keep each report concise but actionable: component/page, observed behavior, expected behavior, repro notes, related issues, and suspected root cause.

Current reports from this thread

ID Status Area Report Related issue(s) Suspected root cause / cluster
BB-009 New ChatComposer / ChatComposerDrawer playground scaffolding Chat Composer Drawer playground does not look right when rendered standalone; it likely needs to be composed inside XDSChatComposer or another component-specific scaffold so the drawer is visible in its intended context. Chat Composer playground is also squished by default and likely needs an explicit playground-only width/container. Expected: Chat subcomponent playgrounds should render in realistic composer/chat scaffolds or use preview container defaults so component geometry matches real usage. No separate duplicate found; related to #2008 for playground defaults/slotElements, but this is broader because defaults alone may not express wrapper/scaffold/container requirements. C11 — Component-specific playground scaffolds/container constraints; also C2. Fix candidates: extend playground config to support wrapper/scaffold or preview container sizing, and add Chat-specific scaffolds/default widths for ChatComposer and ChatComposerDrawer.
BB-008 New ChatComposerDrawer / With Progress example ChatComposerDrawer — With Progress should hide the progress bar label in the example. Expected: the progress indicator should not show an extra visible label/value label if it creates clutter or duplicates surrounding context; keep an accessible label only. Code signal: ChatComposerDrawerWithProgress.tsx uses XDSProgressBar value={42} label="Context usage" isLabelHidden hasValueLabel; verify whether hasValueLabel or generated docsite output is still surfacing visible label text. No duplicate issue found for ChatComposerDrawer / With Progress / ProgressBar label. C10 — Chat example composition polish. Likely fix is in the block example source, e.g. hide/remove visible value label while preserving accessibility.
BB-007 New ChatComposer / ChatComposerDrawer docsite docs content Chat Composer and Chat Composer Drawer pages on the docsite are showing Chat Message List docs/usage content instead of component-specific docs. Expected: /components/ChatComposer should describe composer behavior and slots (drawer/header/input/footer/send/status), and /components/ChatComposerDrawer should describe drawer/collapse/count/attachment behavior — neither should inherit message-list composition guidance. Likely root cause: extracted Chat subcomponent docs such as ChatComposer.doc.mjs and ChatComposerDrawer.doc.mjs have subComponentOf: 'Chat' but no own usage block, so generate-data.mjs falls back to the parent Chat.doc.mjs usage; the parent Chat usage is currently MessageList-focused. No duplicate issue found for ChatComposer/ChatComposerDrawer showing ChatMessageList docs. C9 — Subcomponent docs inherit mismatched parent usage. Fix candidates: create separate usage docs for each Chat subcomponent and/or make generated docs avoid inheriting parent usage for extracted subcomponents unless explicitly requested.
BB-005 New ClickableCard / SelectableCard example titles Template examples ClickableCardWithNestedButton and SelectableCardMulti do not follow the standard example title convention, so their docsite titles look malformed (Clickable Card With Nested Button, Selectable Card Multi). Expected: title metadata should use the standard component example pattern, e.g. component name plus a readable variant label (Clickable Card — Nested Button, Selectable Card — Multi-select) rather than leaking PascalCase/export-name wording. No duplicate issue found for these example names/titles. C8 — Template/example metadata naming conventions. Likely fix is in the .doc.mjs block metadata (displayName/possibly name) and perhaps a lint/check so future generated example titles follow the convention.
BB-006 New ClickableCard / SelectableCard docsite playgrounds ClickableCard and SelectableCard playgrounds need better default content. Current generated playground state is too empty because these card docs have no playground.defaults and children is optional/no slot default, so the previews do not demonstrate meaningful card layouts. Expected: default content should include useful card body copy/heading and realistic control setup (label + href/onClick for ClickableCard; label + selected/onChange state for SelectableCard). Related to broad tracking issue #2008 (Add playground defaults and slotElements to all component docs); this row captures the specific ClickableCard/SelectableCard acceptance criteria. C2 — Preview harness state/control/default wiring. Add playground.defaults and/or children slot defaults in ClickableCard.doc.mjs and SelectableCard.doc.mjs.
BB-003 New Toolbar / Table Toolbar example ToolbarComposition: Table Toolbar (docsite/story example) uses plain secondary buttons labeled Status, Priority, and Assignee as if they were filter dropdowns/selectors. Expected: use actual selector/dropdown/menu controls for filter values (or make them honest action buttons) so the example teaches the right composition pattern. No direct duplicate found for Toolbar/Table Filter; loosely related to #2870, another Toolbar example cleanup. C7 — Toolbar docs/example fidelity. The example is semantically misleading: buttons are standing in for selection/filter controls.
BB-004 New Toolbar / docsite playground Toolbar playground starts too empty and does not offer useful Toolbar-specific slot content. startContent, centerContent, and endContent should have richer slot options across the slots: text, button, icon button, tab list, and segmented control (and likely selector/dropdown patterns where relevant). Expected: meaningful playground defaults plus slot controls that let users explore realistic toolbar compositions. Related to broad tracking issue #2008 (Add playground defaults and slotElements to all component docs), which explicitly lists Toolbar as medium priority; this row captures the specific Toolbar acceptance criteria. C2 + C7 — preview defaults/slot modeling and Toolbar docs fidelity. Current Toolbar.doc.mjs slotElements are narrow (XDSIcon/XDSText/XDSBadge) and there is no Toolbar-specific playground.defaults.
BB-002 New Timestamp / docsite playground Timestamp component page playground renders Render error: Invalid time value on load. Expected: the playground should use a valid timestamp default so the component renders immediately. Likely repro path: generated playground initial state treats required value: string | number as a generic string/number control without a semantic default; getRequiredFallbackValue currently falls back to the prop name ("value") for required strings, and XDSTimestamp calls date.toISOString() on new Date("value"), throwing Invalid time value. No duplicate issue found in GitHub issue search for Timestamp / invalid time / render error. C2 — Preview harness state/control/default wiring. Fix candidates: add playground.defaults.value to Timestamp.doc.mjs (e.g. ISO string or Unix seconds) and/or make docsite required fallback smarter for date/time prop names; consider component-level invalid-date guard if invalid consumer input should not crash docs.
BB-001 New Thumbnail / demo media XDSThumbnail isLoading/upload examples are hard to evaluate: the no-src skeleton is very low-visibility, and the image-backed overlay/remove-button contrast path does not work in hosted examples because useImageMode fetches the demo image for APCA sampling and https://lookaside.facebook.com/assets/xds_oss/moody-scene-vertical-2.png is blocked by CORS from https://xds-sandbox.vercel.app (No Access-Control-Allow-Origin). Expected: loading states are visibly distinct and media-theme/APCA contrast works in docs/examples without console CORS failures. Repro: Thumbnail examples using lookaside assets on the sandbox/docsite. No duplicate issue found in GitHub issue search for Thumbnail/isLoading/APCA/lookaside/CORS. C6 — Cross-origin demo media breaks runtime image analysis. Possible strategy shift: use self-hosted/CORS-enabled fixture assets or avoid fetch/canvas pixel sampling for public demo URLs; separately check whether the skeleton token contrast should be strengthened.

Suspected root-cause clusters

Seeded from currently open bug-bash issue titles; refine as we investigate new reports.

Cluster Current signal Related examples
C1 — Docsite/generated-doc coverage gaps Missing examples, empty previews, no playground link, or inability to inspect complex prop types. #2679, #2682, #2698, #2709, #2724, #2791
C2 — Preview harness state/control/default wiring Properties/overview previews render stale, empty, non-interactive, or invalid UI because generated controls, initial defaults, and component state are not wired together correctly. #2008, #2697, #2706, #2716, BB-002, BB-004, BB-006, BB-009
C3 — Date/time/calendar runtime guardrails Invalid prop values, spillover-day handling, or status/time option combinations produce crashes or confusing behavior. #2695, #2699, #2704, #2715, #2725, #2727, #2729
C4 — Docsite shell/link/navigation affordances Page shell behavior is inconsistent: theme flash, stale document title, non-link actions, or preview navigation to 404. #2701, #2702, #2713, #2723
C5 — Component identity/selection assumptions Selection logic assumes stable IDs and can mark unrelated rows/items selected. #2690
C6 — Cross-origin demo media / canvas sampling Demo/examples rely on lookaside.facebook.com image URLs that can render in <img> but cannot be fetched with CORS for pixel sampling, so useImageMode/APCA-backed media theming fails silently and overlay contrast becomes unreliable. The CLI already strips lookaside URLs for scaffolded templates, but docsite/block examples still reference them directly. BB-001; audit Thumbnail, MediaTheme, Overlay, Avatar, AspectRatio, and page template examples that use lookaside assets.
C7 — Toolbar docs/example fidelity and slot modeling Toolbar docs/examples should demonstrate real toolbar composition, not fake controls or empty slots. The same docs pass can improve Table Toolbar semantics and make startContent/centerContent/endContent playground options realistic. #2008, #2870, BB-003, BB-004
C8 — Template/example metadata naming conventions Template/example displayName values should follow a readable docs convention and not leak PascalCase/export-name wording. A small metadata cleanup or lint could prevent malformed example titles across component docs. BB-005
C9 — Subcomponent docs inherit mismatched parent usage Extracted subcomponent docs without their own usage inherit the parent family usage in generate-data.mjs; this can leak docs for a different component into the subcomponent detail page. Chat likely needs separate usage docs per subcomponent rather than inheriting the MessageList-focused family usage. BB-007
C10 — Chat example composition polish Chat block examples need small composition cleanups so examples teach the intended pattern without extra visible labels or visual clutter while preserving accessible labels. BB-008
C11 — Component-specific playground scaffolds/container constraints Some components/subcomponents need more than prop defaults to preview correctly: wrapper composition, parent context, or preview container sizing. Rendering them standalone in the generic playground can make them invisible, squished, or visually misleading. #2008, BB-009

Update log

  • Added BB-009 for ChatComposerDrawer standalone playground needing composer/scaffold context and ChatComposer playground needing an explicit width/container; added C11 for component-specific playground scaffolds/container constraints and linked Add playground defaults and slotElements to all component docs #2008 as related but not sufficient.
  • Updated BB-007 to include ChatComposerDrawer showing ChatMessageList docs and the need for separate Chat subcomponent usage docs; added BB-008 for ChatComposerDrawer — With Progress progress-bar label visibility and C10 for Chat example composition polish.
  • Added BB-007 for ChatComposer page showing ChatMessageList docs due to inherited parent usage; updated BB-006 to include SelectableCard playground default content alongside ClickableCard; added C9 for subcomponent docs inheriting mismatched parent usage.
  • Added BB-005/BB-006 for ClickableCard/SelectableCard example-title convention issues and ClickableCard playground default content; linked Add playground defaults and slotElements to all component docs #2008 for the defaults work and added C8 for template/example title metadata hygiene.
  • Added BB-003/BB-004 for Toolbar Table Filter example semantics and Toolbar playground defaults/slot options; linked Add playground defaults and slotElements to all component docs #2008 as the broad slot/defaults tracker and added C7 for Toolbar docs/example fidelity.
  • Added BB-002 for Timestamp docsite playground rendering Invalid time value; no duplicate issue found; consolidated under C2 as a preview initial-default/control issue.
  • Added BB-001 for XDSThumbnail loading visibility + lookaside CORS blocking APCA/useImageMode; no duplicate issue found; added C6 root-cause cluster for cross-origin demo media/canvas sampling.
  • Created tracker for this bug bash.

Maintained by Navi on behalf of @cixzhang during bug bash.

Metadata

Metadata

Assignees

Labels

bug-bashFiled during a manual bug bashdiscussionTopics for discussion, not immediately actionable

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions