From 24bca5d5c76c4c9b87d9862769c888758d34b7fe Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Mon, 16 Mar 2026 15:48:38 +0100 Subject: [PATCH 1/2] docs: checkpoint react v14 docs plan --- ai-docs/docs-plan.md | 522 +++++++++++++++++++++++++++++-------------- 1 file changed, 357 insertions(+), 165 deletions(-) diff --git a/ai-docs/docs-plan.md b/ai-docs/docs-plan.md index 7122e67b4..f24ea92d5 100644 --- a/ai-docs/docs-plan.md +++ b/ai-docs/docs-plan.md @@ -1,6 +1,6 @@ # React v14 Docs Plan -Last updated: 2026-03-15 +Last updated: 2026-03-16 ## Goal @@ -8,9 +8,10 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ## Current Phase -- Phase: breaking-change inventory -- Constraint: do not edit v14 docs pages again until the breaking-change list is complete enough to support a coherent migration pass -- During this phase, keep `breaking-changes.md` and this file up to date with confirmed findings and affected docs pages +- Phase: docs execution against the audited snapshot `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a` +- Constraint: keep `breaking-changes.md` as the source of truth for confirmed migration items, but treat this file as the execution tracker for the remaining v14 docs work +- Migration-guide and sidebar work is already in flight on `docs-content#1080`; keep the guide aligned with new SDK changes until that PR is merged +- New SDK changes after the audited snapshot should be mined from `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a..HEAD`, then folded back into both trackers before related docs edits are made ## Working Baseline @@ -19,6 +20,7 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t - Future mining starting point: review `stream-chat-react` diff `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a..HEAD`, then map any confirmed changes back to `v13.14.2` before updating `breaking-changes.md` and this file - Docs content repo: `/docs/data/docs` - Docs content branch: `react-chat-v14` +- Active migration-guide PR: `docs-content#1080` (`docs/react-v14-migration-guide` -> `react-chat-v14`) - Site shell repo: `/docs` ## Working Rules @@ -26,29 +28,225 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t - Treat source code as the primary evidence for migration items. - Use PR titles, changelog notes, and `BREAKING CHANGE` labels only as secondary coverage checks. - Add an entry to `breaking-changes.md` only after the change is confirmed in code. -- During inventory, record the affected v14 docs pages here but defer page edits until the breaking-change list is complete. +- Keep `docs-plan.md` and `breaking-changes.md` in `stream-chat-react/ai-docs`. +- The coordinator owns tracker updates, merge order, and final verification. +- Feature branches/worktrees should only edit assigned docs pages; do not have multiple agents update this tracker file in parallel. +- Run parallel work only when file overlap is low and the shared v14 patterns for that area have already been established. - Keep the migration guide focused on integrator-facing changes, not internal refactors. +- Keep the existing page writing style and section structure where practical; update stale details and code snippets instead of turning reference pages into migration guides. +- Keep `Best Practices` near the top of the page whenever the page already has that section. +- Do not add `What is new in v14` sections to the v14 docs set. Version-to-version migration framing belongs in the dedicated migration guide. ## Deliverables -- `stream-chat-react/breaking-changes.md` +- `stream-chat-react/ai-docs/breaking-changes.md` +- `stream-chat-react/ai-docs/docs-plan.md` - v13 to v14 migration guide in the React v14 docs set - Updated v14 reference pages for any confirmed breaking changes - Updated v14 sidebar entry and naming +## Execution Model + +- Coordinator: + - updates `ai-docs/breaking-changes.md` and `ai-docs/docs-plan.md` + - assigns page batches + - merges workstreams in order + - runs stale-pattern sweeps and final docs verification +- Feature agents: + - work in separate branches/worktrees based on `react-chat-v14` + - edit only their assigned docs pages + - do not update the shared tracker files directly +- Merge order: + 1. establish the canonical v14 customization patterns + 2. run low-overlap feature batches in parallel + 3. do a cross-cutting example/stale-reference sweep + 4. run docs verification + +## Workstreams + +| Workstream | Scope | Primary issues | Seed pages | Parallelizable | Blocked by | +| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------ | +| WS1: Core customization surfaces | lock the canonical v14 patterns for `WithComponents`, `Channel`, `ComponentContext`, `MessageActions`, and custom message overrides | 6, 10, 11, 16, 30, 33 | `02-ui-components/04-channel/01-channel.md`, `02-ui-components/04-channel/05-component_context.md`, `05-experimental-features/01-message-actions.md`, `04-guides/16-ai-integrations/02-chat-sdk-integration.md` | no | none | +| WS2: Message and message-list | message UI/context/hooks, reactions, polls, read-state, notifications, date separator | 5, 7, 12, 14, 15, 21, 29, 35 | `02-ui-components/08-message/*`, `04-guides/05-channel_read_state.md`, `04-guides/13-notifications.md` | yes | WS1 patterns should be settled first | +| WS3: Composer, attachments, dialogs, media | message-input, cooldown, suggestion list, attachments, gallery, modal/dialogs, file/media, bounce/audio permission flows | 8, 9, 13, 19, 20, 22, 23, 26, 28, 31, 38, 39 | `02-ui-components/09-message-input/*`, `02-ui-components/16-modal.md`, `04-guides/10-dialog-management.md`, `04-guides/15-audio-playback.md`, attachment/gallery cookbooks | yes | WS1 patterns should be settled first | +| WS4: Layout, headers, lists, threads, indicators | avatar, channel header, chat/sidebar state, channel preview, thread header/list, ChatView, indicators, styling drift | 17, 18, 24, 25, 27, 34, 36, 37, 40, 41, 42 | `02-ui-components/03-chat/01-chat.md`, `02-ui-components/04-channel/02-channel_header.md`, `02-ui-components/05-channel-list/*`, `02-ui-components/06-thread-list/*`, `02-ui-components/11-chat-view.md`, `02-ui-components/12-indicators.md` | yes | WS1 patterns should be settled first | +| WS5: Cross-cutting sweep | migration/install copy, old selector cleanup, old `Channel X={...}` examples, renamed export cleanup | 1, 2, 11, 24, 32, plus residual grep sweeps | `01-basics/02-installation.md`, `06-release-guides/01-upgrade-to-v14.md`, `02-ui-components/01-getting_started.md`, remaining cookbook/example pages | after WS1-WS4 | outputs of WS1-WS4 | + +## Parallelization Rules + +- Safe parallel split after WS1: + - one agent on WS2 + - one agent on WS3 + - one agent on WS4 +- Keep one coordinator outside those branches to: + - update this tracker + - review overlap + - run stale-pattern sweeps such as `MessageOptions`, `ReactionsListModal`, `QuotedPoll`, `ScrollToBottomButton`, `MessageNotification`, `useCooldownTimer`, `EditMessageModal`, `Avatar image=`, and `Channel [A-Z].*=` +- Do not parallelize: + - tracker-file edits + - migration-guide ownership + - the final stale-reference sweep + - the final docs verification run + +## Completed Batch: WS1 + +Objective: lock the canonical v14 customization patterns before the broader docs sweep starts. This batch should establish the docs language for `WithComponents`, current `ChannelProps`, current `ComponentContext`, stable `MessageActions`, and the rule that custom message overrides must read SDK state from hooks/context instead of assuming prop injection. + +Current local status: all four WS1 pages have active working-tree edits. The current pass follows the v14 editorial guardrails above: keep `Best Practices` near the top, preserve the existing docs voice, and avoid adding version-comparison sections inside the reference pages. + +### WS1 Page List + +| Order | Page | Issues covered | Primary outcome | +| ----- | -------------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | 5, 16 | replace the old `MessageOptions` / `MessageActionsBox` model with the stable `MessageActions` + `messageActionSet` + `ContextMenu` model | +| 2 | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | 10, 11, 16 | fully reconcile override keys with current `ComponentContextValue` and remove dead override paths | +| 3 | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | 6, 11, 33 | rewrite the page around actual `ChannelProps`, `WithComponents`, `EmptyPlaceholder`, and explicit query-limit guidance | +| 4 | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | 30 | stop implying the SDK injects `MessageUIComponentProps` into custom message overrides | + +### WS1 Acceptance Criteria + +- `MessageActions` is documented only as the stable v14 surface. +- WS1 pages no longer teach `MessageOptions`, `MessageActionsBox`, `MessageActionsWrapper`, or `CustomMessageActionsList`. +- WS1 pages no longer teach `Channel Message={...}`, `Channel Input={...}`, `Channel Modal={...}`, `Channel ThreadHeader={...}`, or similar dead override props unless the prop still exists in current source. +- `Channel` docs explain `WithComponents` as the primary override path and mention `EmptyPlaceholder={null}` for preserving the old blank-state behavior. +- `Channel` docs no longer imply the SDK provides the old default initial message/query limits. +- custom-message examples in WS1 do not type the override as SDK-injected `MessageUIComponentProps`; they should pull message/grouping state from `useMessageContext()` or other current hooks. + +### WS1 Completion Sweep + +Run these sweeps before marking WS1 done: + +- `rg -n "MessageOptions|MessageActionsBox|MessageActionsWrapper|CustomMessageActionsList" data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` +- `rg -n "Channel [A-Z][A-Za-z]+=" data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` +- `rg -n "MessageUIComponentProps|groupedByUser|firstOfGroup|endOfGroup" data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` + +### WS1 Exit Condition + +Once the WS1 pages are merged and the sweep is clean: + +- mark `WS1` done in the checklist +- update the `partial` entries for `01-channel.md` and `05-component_context.md` +- then fan out WS2, WS3, and WS4 in parallel + +Local note: the WS1 rewrites have been completed in the current working tree and the targeted stale-pattern sweeps passed. Until those edits are committed or merged, continue treating WS1 as the baseline pattern source for later batches. + +## Completed Batch: WS2 + +Objective: align the message and read-state docs with the current v14 message surface, including `MessageContext`, message UI composition, reactions, polls, date separators, and the current unread/new-message notification model. + +Current local status: WS2 is complete in the working tree. The following pages were rewritten in this batch: + +- `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/01-message_list.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/02-virtualized_list.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/03-message_list_context.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/04-virtualized_message_list_context.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/09-base-image.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` +- `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` +- `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` + +WS2 exit note: + +- the targeted stale-pattern sweeps are clean for the rewritten message and message-list pages +- the remaining stale hits under `08-message/11-attachment/*` are intentionally deferred to WS3 + +WS2 guardrails: + +- keep `Best Practices` near the top when the page already has that section +- do not add version-comparison sections such as `What is new in v14` +- keep message customization examples aligned with `WithComponents`, `MessageList`, `Thread`, and `VirtualizedMessageList` +- treat `11-attachment/*` as WS3 scope even though it sits inside the `08-message` docs tree + +## Completed Batch: WS4 + +Objective: align the chat layout, headers, channel-list, thread-list, thread-header, and indicator docs with the current v14 UI and behavior. + +WS3 exit note: + +- the composer, dialog, media, attachment, gallery, link-preview, attachment-preview, and suggestion-list docs are now rewritten to current v14 patterns +- targeted stale-pattern sweeps are clean for the WS3 pages +- the remaining open work is now concentrated in chat layout, headers, channel previews, thread surfaces, avatar docs, and styling examples + +Completed WS3 pages: + +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` +- `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` +- `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` + +WS4 exit note: + +- the chat layout, header, channel-list, thread-list, thread-header, and indicator docs are now aligned with the current v14 behavior +- targeted stale-pattern sweeps are clean for the rewritten WS4 pages +- the remaining open work from this area is residual cross-cutting cleanup, mainly older avatar examples outside the WS4 page set + +Completed WS4 pages: + +- `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` + +## Active Batch: WS5 + +Objective: finish the cross-cutting sweep for residual stale examples, installation/typescript copy, and remaining old override patterns that were intentionally deferred while WS1 through WS4 were being rewritten. + +Current WS5 targets: + +- installation/version-alignment docs +- TypeScript custom-data guidance +- remaining reaction and message cookbook pages +- residual avatar examples outside the WS4 page set +- the final sweep for old `Channel X={...}` examples and renamed exports + ## Confirmed Docs Issues ### 1. v14 sidebar still exposes the old upgrade guide title -- Status: open +- Status: in PR - Evidence: `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` still labels the page as `Upgrade to v13` -- Expected fix: rename the nav item and ensure the slug/file name match the actual v13 to v14 migration guide +- Expected fix: rename the nav item and ensure the slug/file name match the actual v13 to v14 migration guide; work is currently staged in `docs-content#1080` ### 2. v14 release guide file is still the inherited v13 guide -- Status: open +- Status: in PR - Evidence: `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v13.md` starts with `Removal of StreamChatGenerics` -- Expected fix: replace with a real v13 to v14 migration guide +- Expected fix: replace with a real v13 to v14 migration guide; work is currently staged in `docs-content#1080` ### 3. v14 Channel docs still reference unstable experimental MessageActions @@ -66,11 +264,11 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ### 5. v14 message docs still describe removed `MessageOptions` and `FixedHeightMessage` -- Status: open +- Status: resolved - Evidence: - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` - - `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` now reflects the current deleted-message, message-status, and message-text surfaces + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` now reflects the current message UI composition + - `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` now reflects the stable `MessageActions` surface - Expected fix: replace or rewrite stale references to match current `MessageActions`, `MessageDeletedBubble`, and `VirtualMessage` guidance ### 6. v14 Channel docs still present component overrides as `Channel` props @@ -86,30 +284,29 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ### 7. v14 MessageContext docs still document removed edit-state and custom-action fields -- Status: open +- Status: resolved - Evidence: - current `src/context/MessageContext.tsx` removed `clearEditingState`, `editing`, `handleEdit`, `setEditingState`, `additionalMessageInputProps`, and `customMessageActions` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` still documents them - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` still composes around them + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` now reflects the current context contract + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` now points readers to the current edit flow - Expected fix: rewrite the MessageContext docs around the current contract and point edit flows to `MessageComposer` ### 8. v14 MessageInputContext docs still document cooldown state in context -- Status: open +- Status: resolved - Evidence: - - current `src/context/MessageInputContext.tsx` no longer composes `CooldownTimerState` - - current public hooks expose cooldown state via `useCooldownRemaining` and `useIsCooldownActive` - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` still documents `cooldownInterval`, `cooldownRemaining`, and `setCooldownRemaining` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` still consumes cooldown values from `useMessageInputContext()` + - current `src/context/MessageInputContext.tsx` no longer composes cooldown timer state + - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` now points readers to dedicated cooldown helpers + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` now reads cooldown through `useCooldownRemaining()` - Expected fix: update docs to use the dedicated cooldown hooks ### 9. v14 attachment docs still document the old gallery/image override surface -- Status: open +- Status: resolved - Evidence: - current `src/components/Attachment/Attachment.tsx` exposes `ModalGallery` instead of `Gallery` - current attachment rendering no longer uses separate `gallery` / `image` grouping in the old way - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` still documents `Gallery`, `Image`, and `ReactPlayer` as the old default surface + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` now documents the current `Attachment` grouping, `Image` / `Media` / `ModalGallery` split, and supported override points - Expected fix: rewrite the Attachment page to match current `AttachmentProps` and render grouping ### 10. v14 ComponentContext docs are still only partially aligned with the current override keys @@ -131,202 +328,192 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ### 12. v14 message-list docs still describe `MessageNotification` and `ScrollToBottomButton` -- Status: open +- Status: resolved - Evidence: - current `stream-chat-react` exports `NewMessageNotification` and `ScrollToLatestMessageButton` instead - current `UnreadMessagesSeparator` defaults `showCount` to true and adds a mark-read button - current `ScrollToLatestMessageButton` uses different markup/classes than the old floating action button, and the old `--str-chat__jump-to-latest-message-*` CSS variables were removed - - `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` still documents `MessageNotificationProps`, `ScrollToBottomButton`, and `` - - `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` still suggests overriding `MessageListNotifications` through `Channel` - - `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/03-message_list_context.md` and `04-virtualized_message_list_context.md` still list `MessageNotification` - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `MessageNotification` + - `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` now documents the current unread and new-message surfaces + - `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` now describes the current `MessageListNotifications` contract + - `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/03-message_list_context.md` and `04-virtualized_message_list_context.md` now reflect the current context values + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` now lists `NewMessageNotification` - Expected fix: rewrite message-list notification docs around `NewMessageNotification`, `ScrollToLatestMessageButton`, the simplified `MessageListNotifications` contract, and the current unread-separator/scroll-button behavior ### 13. v14 edit-message and cooldown docs still describe removed form/modal and hook APIs -- Status: open +- Status: partial - Evidence: - current source removed `EditMessageForm`, `EditMessageModal`, `useEditHandler`, `useCooldownTimer`, and prop-driven `CooldownTimer` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` still documents `useEditHandler` - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` still documents `useCooldownTimer` - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `EditMessageForm`, `EditMessageModal`, and old `CooldownTimer` customization - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` still renders `CooldownTimer` with props - Expected fix: rewrite edit-message docs around `MessageComposer` / `EditedMessagePreview`, and cooldown docs around `CooldownTimer`, `useCooldownRemaining`, and `useIsCooldownActive` ### 14. v14 reactions docs still describe `ReactionsListModal` and the old `ReactionSelector` prop surface -- Status: open +- Status: partial - Evidence: - current source exports `MessageReactionsDetail` instead of `ReactionsListModal` - current `ReactionSelectorProps` no longer accepts `reactionOptions` and the older display/data props - current `MessageReactionsDetail` is dialog content with renamed classnames, not a modal component with the old `str-chat__message-reactions-details*` structure - current `ReactionSelector` markup/classes changed substantially from the old tooltip/avatar/count layout - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` still documents `ReactionsListModal` and `ReactionSelector.reactionOptions` - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` still passes `reactionOptions` into `ReactionSelector` - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` still assumes array-only `reactionOptions` from `useComponentContext()` - Expected fix: update reactions docs to the current `MessageReactionsDetail` naming, the narrowed `ReactionSelector` props, the current reaction-options shape, and the new selector/detail markup expectations ### 15. v14 poll docs still describe `QuotedPoll`, `Poll.isQuoted`, and old poll-action component names -- Status: open +- Status: resolved - Evidence: - current source removed `QuotedPoll` and `Poll.isQuoted` - current source renamed direct poll-action exports to `AddCommentPrompt`, `EndPollAlert`, and `SuggestPollOptionPrompt` - current poll dialog subcomponents no longer receive `close` props directly and now rely on modal context/dialog primitives - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` still documents `QuotedPoll`, `SuggestPollOptionForm`, `AddCommentForm`, and `EndPollDialog` - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `QuotedPoll` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` now points users to the current quoted-message surfaces instead of a dedicated `QuotedPoll` - Expected fix: rewrite poll docs around the current `Poll` / `PollActions` surface and remove quoted-poll guidance that no longer maps to exported APIs ### 16. v14 MessageActions docs still describe the removed wrapper/box/custom-actions surface -- Status: open +- Status: partial - Evidence: - current source removed `MessageActionsBox`, `MessageActionsWrapper`, and `CustomMessageActionsList` - current `MessageActions` uses `messageActionSet`, quick actions, and `ContextMenu` - - `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` still centers the old `MessageOptions`, `MessageActionsBox`, and `CustomMessageActionsList` model - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` still references `CustomMessageActionsList` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` and `07-message-list/01-message_list.md` still describe `customMessageActions` in terms of `MessageActionsBox` - Expected fix: replace the legacy docs model with current `MessageActions`, action-set items, and `ContextMenu`-based customization ### 17. v14 avatar docs and examples still use the v13 avatar prop names and helper assumptions -- Status: open +- Status: partial - Evidence: - current `AvatarProps` use `imageUrl`, `userName`, `isOnline`, and required `size` - current channel/group avatar rendering expects `displayMembers` plus optional `overflowCount` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` still uses `image`, `name`, and old `displayTitle` / `displayImage` assumptions - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md`, `03-ui-cookbook/05-message-input/06-suggestion_list.md`, and `03-ui-cookbook/04-message/06-system_message.md` still render `` -- Expected fix: rewrite avatar docs around the current prop names, the required `size` prop, and the new group/channel avatar data shape + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` now documents the current prop names, `ChannelAvatar`, and the helper-based channel display image/title flow + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` and `03-ui-cookbook/05-message-input/06-suggestion_list.md` now use the current `Avatar` prop names + - residual custom-message examples in `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` and `03-ui-cookbook/04-message/06-system_message.md` still use old `Avatar` props +- Expected fix: finish the remaining avatar-using cookbook examples outside the WS4 page set ### 18. v14 ChannelHeader docs still document the removed `live` prop -- Status: open +- Status: resolved - Evidence: - current `ChannelHeaderProps` no longer expose `live` - current default `ChannelHeader` no longer renders `channel.data.subtitle` - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` still shows `` + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` now documents the current title, avatar, typing-subtitle, and status behavior and shows a custom-header pattern for subtitle-heavy layouts - Expected fix: remove `live` guidance, stop implying `channel.data.subtitle` is rendered by default, and document the current header behavior plus the need for a custom header if livestream or subtitle metadata is still required ### 19. v14 modal/dialog docs still mix legacy `Modal` usage with stale component-override patterns -- Status: open +- Status: partial - Evidence: - current public modal component is `GlobalModal`; the old `Modal` component is no longer exported - current `GlobalModal` no longer renders the legacy `.str-chat__modal__inner` wrapper - - `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` still describes the legacy `Modal` as a public option and shows `` - - `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` still shows `` - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `Channel`/`ComponentContext` modal override patterns that need reconciliation with the current `WithComponents` model - Expected fix: rewrite the modal docs around `GlobalModal` and current dialog primitives, mention the removed inner wrapper, then reconcile any remaining modal override guidance with the actual v14 customization surface ### 20. v14 FileIcon docs still use the old prop API -- Status: open +- Status: resolved - Evidence: - current `FileIconProps` expose `fileName`, `mimeType`, and `className` only - - `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` still uses `` + - `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` now uses the current `FileIcon` prop surface - Expected fix: update examples to the current `FileIcon` API ### 21. v14 message status docs still mention removed standalone status-icon exports -- Status: open +- Status: resolved - Evidence: - current message status UI renders shared `Icons` components instead of exporting `MessageDeliveredIcon` / `MessageSentIcon` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` still says the default delivered-status UI renders `MessageDeliveredIcon` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` now points users to `MessageStatus` and the current shared icon surface - Expected fix: rewrite the status-icon guidance around `MessageStatus` and the current shared icon set ### 22. v14 message-input attachment preview docs still describe the old preview-list and voice-recording model -- Status: open +- Status: resolved - Evidence: - current `AttachmentPreviewListProps` no longer include `VoiceRecordingPreview` - current `MessageInputFlat` renders `VoiceRecordingPreviewSlot` separately above `AttachmentPreviewList` - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` still documents `VoiceRecordingPreview` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` still lists `VoiceRecordingPreview` as part of the old attachment preview model + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` now reflects the current preview split between `AttachmentPreviewList`, `VoiceRecordingPreviewSlot`, and `LinkPreviewList` - Expected fix: rewrite the attachment preview docs around the current audio/video preview prop types and the separate `VoiceRecordingPreviewSlot` ### 23. v14 gallery docs still describe the old `Gallery` and `ModalGallery` APIs -- Status: open +- Status: resolved - Evidence: - current `GalleryProps` use `items`, `GalleryUI`, `initialIndex`, `onIndexChange`, and `onRequestClose` - current `ModalGalleryProps` use `items` instead of `images` / `index` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` still builds custom components against the old `GalleryProps` - - `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` and `04-guides/10-dialog-management.md` still show `` + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` now explains the `ModalGallery` override path and the lower-level `Gallery` provider split - Expected fix: rewrite gallery docs around the provider-style `Gallery` plus the new `ModalGallery` prop contract ### 24. v14 styling docs still target pre-v14 DOM/class structures -- Status: open +- Status: resolved - Evidence: - current `ChannelHeader`, `MessageInputFlat`, and `Avatar` markup/classes changed substantially in v14 - - `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` still targets `.str-chat__header-hamburger` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` still renders `str-chat__header-livestream` + - `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` now uses the current header toggle selector + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` now renders a custom header against the current `ChannelHeader` patterns instead of stale livestream markup - Expected fix: rewrite CSS snippets and customization examples against the current header/composer/avatar markup and steer users toward the current styling/token layer ### 25. v14 Chat docs still document `initialNavOpen` as the only initial sidebar-state control -- Status: open +- Status: resolved - Evidence: - current `ChatProps` added `initialNavOpenResponsive` - current `Chat.tsx` explicitly says `initialNavOpen` is ignored when `initialNavOpenResponsive` is true - - `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` documents `initialNavOpen` but does not mention `initialNavOpenResponsive` + - `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` now documents `initialNavOpenResponsive`, its default behavior, and how it interacts with `initialNavOpen` - Expected fix: document `initialNavOpenResponsive`, clarify its default behavior, and show how to preserve v13-style `initialNavOpen` control ### 26. v14 attachment docs do not cover the low-level attachment-container/export churn -- Status: open +- Status: resolved - Evidence: - current `AttachmentContainer` exports now include `GiphyContainer`, `OtherFilesContainer`, and `VideoContainer` - current `MediaContainer` expects `attachments`, and `GalleryAttachment` now uses `items` - `CardAudio` is no longer re-exported from the package root - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` and `03-ui-cookbook/06-attachment/02-image_gallery.md` do not warn users who customized the low-level attachment layer + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` now points users toward the supported v14 attachment override points + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` now distinguishes between `ModalGallery` and the lower-level `Gallery` provider - Expected fix: add migration guidance for low-level custom attachment renderers and keep the attachment docs focused on supported override points in v14 ### 27. v14 typing indicator docs still document the old prop contract -- Status: open +- Status: resolved - Evidence: - current `TypingIndicatorProps` use `scrollToBottom`, optional `isMessageListScrolledToBottom`, and `threadList` - current `TypingIndicator` no longer exposes an `Avatar` prop and now renders `AvatarStack` - - `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` still documents `TypingIndicatorProps.Avatar` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` still builds a custom typing indicator against the old `threadList`-only props + - `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` now documents the current `TypingIndicator` and `TypingIndicatorHeader` split plus the current prop shape + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` now builds against the current `TypingIndicatorProps` contract - Expected fix: rewrite typing-indicator docs around the current prop contract and scroll behavior ### 28. v14 message bounce and audio-recorder permission docs still document removed close props -- Status: open +- Status: resolved - Evidence: - current `MessageBouncePromptProps` no longer expose `onClose` and now close via `useModalContext()` - current `RecordingPermissionDeniedNotificationProps` no longer expose `onClose` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` still implements custom prompts with `onClose` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` still documents `MessageBouncePrompt.onClose` - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` still treats `RecordingPermissionDeniedNotification` like the old dismissable dialog surface + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` now documents the current bounce-prompt flow + - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` now documents the permission notification as SDK-managed dialog content - Expected fix: rewrite these docs around modal context or the current parent-managed flow instead of explicit close props ### 29. v14 message status and message text docs still describe removed props and old default behavior -- Status: open +- Status: resolved - Evidence: - current `MessageStatusProps` no longer expose `Avatar`, and the default read/sent/delivered states no longer use the old avatar-plus-standalone-icons model - current `MessageTextProps` no longer expose `theme` - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` still documents `MessageStatus.Avatar`, old default status rendering, `MessageText.theme`, and `MessageBouncePrompt.onClose` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` now documents the current `MessageStatus`, `MessageText`, and `MessageBouncePrompt` contracts - Expected fix: reconcile the message UI-components page with the current `MessageStatus`, `MessageText`, and `MessageBouncePrompt` contracts ### 30. v14 custom-message docs still imply the SDK injects `MessageUIComponentProps` into overrides -- Status: open +- Status: resolved - Evidence: - current `src/components/Message/Message.tsx` renders `` and no longer passes `groupedByUser` or other SDK-owned props directly into the override component - current `MessageContext` still exposes grouping state via `useMessageContext()` - - `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` still types a custom message override as `(props: MessageUIComponentProps)` and forwards those props into `` + - `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` now reads message state from `useMessageContext()` and no longer implies direct SDK prop injection - Expected fix: document that custom message overrides should read SDK state from `useMessageContext()` and simplify examples so they do not imply direct prop injection ### 31. v14 suggestion-list docs still describe a stale `AutocompleteSuggestionItem` customization model -- Status: open +- Status: resolved - Evidence: - current `src/components/TextareaComposer/SuggestionList/SuggestionList.tsx` and `SuggestionListItem.tsx` drive suggestion items through the current button-based `SuggestionListItem` contract - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` still customizes items around old `selected`, `onSelectHandler`, and `onClickHandler` props and still mounts the override through `Channel` + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` now uses `SuggestionList`, `defaultComponents`, `SuggestionItemProps`, and `WithComponents` - Expected fix: rewrite the suggestion-list cookbook around the current `SuggestionListItem` contract, current keyboard-selection flow, and the v14 override path ### 32. v14 installation and migration docs do not call out the newer `stream-chat` minimum @@ -340,11 +527,12 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ### 33. v14 Channel and ChannelList docs still imply old SDK-managed initial query defaults -- Status: open +- Status: resolved - Evidence: - current `Channel` no longer injects a default initial `messages.limit` into `channelQueryOptions` - current `ChannelList` no longer relies on the old internal max query limit when deciding first-load behavior - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` still says the default initial message page is 100 + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` now tells users to set `channelQueryOptions` explicitly when they care about initial limits + - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` and `05-channel-list/06-channel-list-infinite-scroll.md` now tell users to set `options.limit` explicitly for first-load and infinite-scroll behavior - Expected fix: document that consumers should set `channelQueryOptions.messages.limit` and `ChannelList` `options.limit` explicitly when they care about first-load size or pagination consistency ### 34. v14 TypeScript custom-data docs still imply default components rely on `subtitle` @@ -357,155 +545,159 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ### 35. v14 DateSeparator docs still describe the old `position` / `unread` rendering model -- Status: open +- Status: resolved - Evidence: - current `DateSeparator` no longer renders separator lines or the old `New - ...` unread prefix - current `DateSeparator` adds `className` and `floating`, while `position` / `unread` are effectively legacy placeholders in the default implementation - - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` still demonstrates `position=\"center\"` / `position=\"left\"` and documents `unread` as current behavior + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` now explains the current default separator behavior and when to supply a custom separator - Expected fix: rewrite the page around the current default separator behavior, mention `floating`, and tell users to provide a custom `DateSeparator` if they still need unread prefixes or left/center/right line layouts ### 36. v14 thread docs still describe the old `ThreadHeader` behavior and override path -- Status: open +- Status: resolved - Evidence: - current `ThreadHeader` no longer accepts `overrideImage` - current default `ThreadHeader` subtitle can show `threadDisplayName ยท replyCount` or typing state, and the close button is conditional in the newer thread-instance flow - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` still says the default `ThreadHeader` shows the reply count and a close button, uses old `Avatar image/name` props, and still mounts the override through `Channel` - - `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` still demonstrates `ThreadHeader` overrides through `Channel` props + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` now documents the current subtitle and close-button behavior, uses current `Avatar` props, and mounts overrides through `WithComponents` - Expected fix: update thread docs to the current `ThreadHeader` contract, remove the dead `Channel ThreadHeader={...}` path, and document the current default subtitle/close-button behavior ### 37. v14 channel preview docs still describe stale preview helpers, avatar defaults, removed status-icon exports, and old preview controls -- Status: open +- Status: resolved - Evidence: - current `ChannelPreviewMessenger` defaults its `Avatar` prop to `ChannelAvatar`, not the plain `Avatar` - current `useChannelDisplayName()` can synthesize group/direct-message titles, and current `getChannelDisplayImage()` should be preferred over `channel.getDisplayImage()` for the old DM-image fallback behavior - current `ChannelPreviewMessenger` uses `aria-pressed`, `SummarizedMessagePreview`, `ChannelPreviewTimestamp`, muted-state modifiers, and the redesigned `str-chat__channel-preview-data*` layout - current `ChannelPreviewActionButtons` now use a `ContextMenu` plus DM-specific archive / non-DM mute actions instead of the old dedicated pin/archive buttons - - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` still documents `Avatar` as the plain avatar component and still imports removed `SingleCheckMarkIcon` / `DoubleCheckMarkIcon*` helpers - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` still needs review against the current preview prop semantics and generated display-title behavior + - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` now documents the current preview defaults, helper functions, action-button behavior, and status guidance + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` now uses the current display-title/image helpers and `aria-pressed` semantics - Expected fix: rewrite the channel-preview docs around the current `ChannelPreviewMessenger` contract, current avatar/helper recommendations, current preview/action-button behavior, and current status-icon guidance ### 38. v14 AttachmentSelector docs still describe the pre-redesign selector contract -- Status: open +- Status: resolved - Evidence: - current `AttachmentSelectorAction` now supports `id`, `Header`, `Submenu`, and `selectCommand`, and `AttachmentSelectorActionProps` now include submenu helpers - current default `AttachmentSelector` can add a commands submenu, filters out file upload actions when uploads are runtime-disabled, and disables the selector button during cooldown - current `SimpleAttachmentSelector` no longer uses the old `str-chat__file-input-container` / `str-chat__file-input-label` markup - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` still routes customization through `Channel`, still presents the old modal-only action model, and does not mention the redesigned button/commands/cooldown behavior + - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` now reflects the current action contract, filtering rules, and `WithComponents` override path - Expected fix: rewrite the attachment-selector docs around `WithComponents`/current overrides, the expanded action contract, command submenu support, runtime upload filtering, and the redesigned selector button DOM ### 39. v14 link-preview docs still describe the old `LinkPreviewList` contract and default behavior -- Status: open +- Status: resolved - Evidence: - current `LinkPreviewListProps` expose `displayLinkCount`, and the default list now renders only one preview unless overridden - current `LinkPreviewList` no longer suppresses previews while quoting and now renders inside the shared composer preview stack - current `LinkPreviewCard` renders optional thumbnails plus a URL row instead of the old icon-only card UI - - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` still says `LinkPreviewList` has no props - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` still shows `Channel LinkPreviewList={...}` and a fictional `LinkPreviewListProps` shape with injected `linkPreviews` + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` now documents `displayLinkCount`, the shared preview stack, and the `WithComponents` override path - Expected fix: update link-preview docs to the current `LinkPreviewList` prop surface and default behavior, remove the stale `Channel` override path, and document how to wrap the default component when consumers want more than one preview or the old quote-mode behavior ### 40. v14 sidebar and thread-list docs still reference pre-redesign selectors and selection semantics -- Status: open +- Status: resolved - Evidence: - current `ChannelListMessenger` removed `str-chat__channel-list-messenger-react` / `str-chat__channel-list-messenger-react__main` and now wraps the loading state inside `str-chat__channel-list-messenger__main` - current `ThreadListItemUI` uses `aria-pressed` plus the new summarized-preview layout instead of the old `aria-selected` / channel-parent-latest-reply DOM - - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` still tells users to style `.str-chat__channel-list-messenger-react__main` - - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` still demonstrates `threadListItemUiProps={{ "aria-selected": ... }}` + - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` now points users at the current channel-list container selector and explicit `options.limit` guidance + - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` now demonstrates `threadListItemUiProps={{ "aria-pressed": ... }}` - Expected fix: update sidebar/thread-list docs to current selectors and button-state semantics, and add a brief warning that custom channel/thread list CSS based on the old default DOM must be audited in v14 ### 41. v14 ChatView docs still describe `ThreadAdapter` as a pure `ThreadProvider` pass-through -- Status: open +- Status: resolved - Evidence: - current `ChatView.ThreadAdapter` renders `EmptyStateIndicator` with `messageText="Select a thread to continue the conversation"` once thread state is ready and no thread is selected - current `ChatView` tests assert that placeholder behavior explicitly - - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` still says `ChatView.ThreadAdapter` only reads the active thread from `ThreadsViewContext` and forwards it to `ThreadProvider` - - `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` points users to `ChatView` for selection support but does not mention the new default placeholder behavior + - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` and `02-ui-components/06-thread-list/01-thread-list.md` now explain the placeholder behavior and point users to `EmptyStateIndicator={() => null}` or manual `ThreadProvider` wiring when they want the older blank state - Expected fix: update `ChatView` and thread-list docs to explain the new placeholder behavior and show how to keep the old blank state when needed by wiring `ThreadProvider` manually or overriding `EmptyStateIndicator` ### 42. v14 ChatView docs do not call out the new icon-only default for `ChatView.Selector` -- Status: open +- Status: resolved - Evidence: - current `ChatView.Selector` now defaults `iconOnly` to `true` - current selector items render the visible `Channels` / `Threads` labels only when `iconOnly={false}`, otherwise the text moves into tooltip/`aria-label` behavior - - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` still shows bare `` usage without mentioning that the visible button labels from v13 are no longer the default + - `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` now calls out the icon-only default and uses `iconOnly={false}` in the labeled-selector examples - Expected fix: update the `ChatView` docs to call out the icon-only default and show `iconOnly={false}` as the migration path for apps that want the old labeled selector layout ## Docs Update Checklist -- [ ] Finish the breaking-change inventory before resuming docs edits -- [ ] Create the new v13 to v14 migration guide content -- [ ] Rename or replace the current v14 release-guide file/metadata -- [ ] Update the v14 sidebar entry +- [x] Freeze the initial breaking-change inventory against audited snapshot `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a` +- [x] Convert `ai-docs/docs-plan.md` from inventory mode into execution workstreams +- [x] Draft the v13 to v14 migration guide content +- [x] Prepare the v14 release-guide rename and sidebar update in `docs-content#1080` +- [ ] Merge `docs-content#1080` into `react-chat-v14` +- [x] Finish WS1: core customization surfaces +- [x] Finish WS2: message and message-list +- [x] Finish WS3: composer, attachments, dialogs, media +- [x] Finish WS4: layout, headers, lists, threads, indicators - [x] Update Channel docs for current `MessageActions` - [x] Update ComponentContext docs for `MessageAlsoSentInChannelIndicator` -- [ ] Remove stale `MessageOptions` references from v14 reference docs -- [ ] Sweep v14 docs for stale `experimental/MessageActions` references -- [ ] Sweep v14 docs for stale renamed export references +- [ ] Sweep v14 docs for stale `MessageOptions`, `experimental/MessageActions`, renamed exports, and `Channel X={...}` examples - [ ] Run docs verification commands ## Page Tracker -| Status | Page | Reason | -| ------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| open | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v13.md` | Placeholder content must be replaced with v13 to v14 migration guidance | -| open | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are stale | -| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Fixed stale `MessageActions`/`MessageOptions` references, but the page still needs a broader rewrite because component overrides no longer match current `ChannelProps` and `channelQueryOptions` docs still imply the removed default initial message limit | -| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Updated `MessageActions`, removed `MessageOptions`, and fixed `MessageDeleted`/`MessageDeletedBubble` plus `MessageAlsoSentInChannelIndicator`, but several old override keys are still documented | -| open | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Should call out the newer `stream-chat` minimum required by v14 | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Still describes removed `MessageOptions`, old deleted-message/status APIs, `MessageText.theme`, and `MessageBouncePrompt.onClose` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Still describes removed `FixedHeightMessage` and `MessageOptions` composition | -| open | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Still documents `MessageActions` as experimental and references `MessageOptions` wrapping semantics | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Still documents removed edit-state fields, `customMessageActions`, and old `handleDelete` signature | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Still documents cooldown state as part of `MessageInputContext` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Still documents `useCooldownTimer` instead of the new cooldown hooks | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Example still pulls cooldown state from `useMessageInputContext()` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Still documents the removed `useEditHandler` hook | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Still documents removed `Gallery` override and outdated attachment grouping/defaults | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Still documents `QuotedPoll`, `Poll.isQuoted`, and old poll-action component names | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Still documents `ReactionsListModal` and the old `ReactionSelector` prop surface | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Still passes `reactionOptions` into `ReactionSelector` and references `ReactionsListModal` | -| open | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Still documents `MessageNotification`, `ScrollToBottomButton`, and old message-actions internals | -| open | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Still suggests `MessageListNotifications` customization through `Channel` overrides | -| open | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Still documents `MessageActionsBox`, `CustomMessageActionsList`, and the old `MessageOptions` model | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Still uses the old `Avatar` prop names and outdated channel-avatar assumptions | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Still documents the preview avatar/status surface with stale defaults, removed standalone status icons, and the old preview/action-button behavior | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | Still tells users to style the removed `.str-chat__channel-list-messenger-react__main` selector | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Needs review against current synthesized display-title/image helpers, `aria-pressed` semantics, and the current preview/action-button contract | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Example still renders `` | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Suggestion-list examples still use old `Avatar` props, a stale `AutocompleteSuggestionItem` prop contract, and the removed `Channel` override path | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | System-message example still renders `` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Custom threads example still uses `aria-selected`, the page still describes `ThreadAdapter` as a pure `ThreadProvider` pass-through, and it does not call out the new icon-only default for `ChatView.Selector` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Selection-support guidance points users to `ChatView`, but does not mention the new `ThreadAdapter` placeholder behavior | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Still routes `ThreadHeader` overrides through `Channel` props and needs alignment with the current thread-header behavior | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Still documents the removed `live` prop and should stop implying `channel.data.subtitle` is shown by the default header | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Still documents legacy `Modal` usage instead of a `GlobalModal`-only public surface | -| open | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Still shows `` and needs reconciliation with the current dialog/menu primitives | -| open | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Still uses removed `FileIcon` props like `big` and `size` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Needs alignment with the current `MessageComposer`-based edit flow, the redesigned `str-chat__message-composer*` markup, and the new shared preview stack | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Still teaches the removed `Channel Input={...}` override path and uses an outdated pre-v14 composer composition example | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Still uses the removed `Channel AttachmentSelector={...}` override path and does not reflect the redesigned action/button/commands model | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Still documents `VoiceRecordingPreview` instead of the dedicated `VoiceRecordingPreviewSlot` model and still says `LinkPreviewList` has no props | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Still uses the removed `Channel LinkPreviewList={...}` override path and describes a stale `LinkPreviewList` prop model/default behavior | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Still describes the old attachment-preview model with `VoiceRecordingPreview` inside the list | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Still uses the old `GalleryProps` model and needs migration to the new gallery APIs | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Still targets old header selectors like `.str-chat__header-hamburger` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Still documents `position` / `unread` as active default behavior even though the current separator no longer renders lines or unread-prefixed text | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | Still renders old livestream/header markup that no longer matches current `ChannelHeader` | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Still documents `initialNavOpen` without the new `initialNavOpenResponsive` behavior | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Should explain that first-load and pagination sizes depend on explicit `options.limit` rather than the old SDK-managed defaults | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Still documents the old `TypingIndicatorProps` shape, including a removed `Avatar` prop | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Custom typing-indicator example still targets the pre-v14 prop contract | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Still implements custom bounce prompts with a removed `onClose` prop | -| open | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Still documents the old permission-denied notification customization surface and still teaches removed `Channel` override props for audio-recorder UI components | -| open | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Still warns that default components expect `subtitle`, which no longer matches the default `ChannelHeader` behavior | -| open | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message example still implies the SDK injects `MessageUIComponentProps` directly into the override component | -| open | `data/docs/chat-sdk/react/v14` (multiple pages) | Many examples still pass UI override props directly to `Channel`; these need migration to `WithComponents` or other current APIs | +| Status | Page | Reason | +| -------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes until merged | +| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | +| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Fixed stale `MessageActions`/`MessageOptions` references, but the page still needs a broader rewrite because component overrides no longer match current `ChannelProps` and `channelQueryOptions` docs still imply the removed default initial message limit | +| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Updated `MessageActions`, removed `MessageOptions`, and fixed `MessageDeleted`/`MessageDeletedBubble` plus `MessageAlsoSentInChannelIndicator`, but several old override keys are still documented | +| open | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Should call out the newer `stream-chat` minimum required by v14 | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, message-text, and bounce-prompt surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Rewritten to the current `MessageContext` contract and `handleDelete` signature | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageInputContext` surface and dedicated cooldown helpers | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks and `useCooldownRemaining()` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, and `Image` / `Media` / `ModalGallery` surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Rewritten to `MessageReactionsDetail`, the current selector surface, and the current markup expectations | +| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Still passes `reactionOptions` into `ReactionSelector` and references `ReactionsListModal` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, and scroll-to-latest model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten to the current `MessageListNotifications` contract and override path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Rewritten to current `Avatar` props, `ChannelAvatar`, and helper-based channel display image/title guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Rewritten to current preview defaults, helpers, status guidance, `aria-pressed` semantics, and action-button behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | Rewritten to current channel-list selectors and explicit `options.limit` guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Rewritten to current display-title/image helpers, preview semantics, and `aria-pressed` button state | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | +| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message examples still use old `Avatar` props and stale reactions guidance in places | +| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | System-message example still renders `` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Rewritten to current `ChannelHeader` behavior, helper usage, and typing/status subtitle guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives and `GlobalModal` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageInput` props, `Input` override path, and v14 composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageInputFlat` composition and `MessageInput Input={...}` usage | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, and `VoiceRecordingPreviewSlot` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | Rewritten to current custom-header patterns and `TypingIndicatorHeader` usage | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to current sidebar-state props, including `initialNavOpenResponsive` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Updated to current explicit `options.limit` guidance for initial load and pagination | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | +| open | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Still warns that default components expect `subtitle`, which no longer matches the default `ChannelHeader` behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | +| open | `data/docs/chat-sdk/react/v14` (multiple pages) | Many examples still pass UI override props directly to `Channel`; these need migration to `WithComponents` or other current APIs | ## Breaking Change Workflow From 6772591e86cb1af6237638836a0278f5f7bd2170 Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Mon, 16 Mar 2026 16:14:12 +0100 Subject: [PATCH 2/2] docs: finish react v14 docs execution plan --- ai-docs/docs-plan.md | 204 ++++++++++++++++++++++++------------------- 1 file changed, 115 insertions(+), 89 deletions(-) diff --git a/ai-docs/docs-plan.md b/ai-docs/docs-plan.md index f24ea92d5..c2f1ae3b8 100644 --- a/ai-docs/docs-plan.md +++ b/ai-docs/docs-plan.md @@ -222,17 +222,35 @@ Completed WS4 pages: - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` - `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` -## Active Batch: WS5 +## Completed Batch: WS5 Objective: finish the cross-cutting sweep for residual stale examples, installation/typescript copy, and remaining old override patterns that were intentionally deferred while WS1 through WS4 were being rewritten. -Current WS5 targets: +WS5 exit note: -- installation/version-alignment docs -- TypeScript custom-data guidance -- remaining reaction and message cookbook pages -- residual avatar examples outside the WS4 page set -- the final sweep for old `Channel X={...}` examples and renamed exports +- the remaining message cookbooks, installation/typescript guidance, and repo-wide override-example sweep are now aligned with the current v14 docs patterns +- the remaining `Channel X={...}` hits in the v14 docs tree are supported props such as `EmptyPlaceholder`, not stale SDK UI override paths +- the only intentionally retained legacy names are in the theming variables table, where the CSS token groups still follow historical `stream-chat-css` folder names + +Completed WS5 pages: + +- `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` +- `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` +- `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` +- `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` +- `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` +- `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` +- `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` + +## Active Batch: Verification + +Objective: merge the open docs PRs, run docs verification, and fix any markdown/build issues that surface from the updated v14 content set. ## Confirmed Docs Issues @@ -273,13 +291,13 @@ Current WS5 targets: ### 6. v14 Channel docs still present component overrides as `Channel` props -- Status: open +- Status: resolved - Evidence: - `v13.14.2:src/components/Channel/Channel.tsx` forwarded many component overrides through `Channel` - current `src/components/Channel/Channel.tsx` no longer defines that forwarded override surface in `ChannelProps` - current `Channel` also defaults `EmptyPlaceholder` to `EmptyStateIndicator` instead of rendering nothing when no channel is active - `src/context/WithComponents.tsx` and `README.md` now point to `WithComponents` for overrides - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` still documents many component overrides on the `Channel` page + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` now keeps `Channel` focused on actual behavior/data props and sends SDK UI override guidance to `WithComponents` - Expected fix: decide whether to rewrite the page around actual `ChannelProps` and move override guidance to `ComponentContext` / `WithComponents`, or clearly split the concepts in docs; also document the new `EmptyPlaceholder={null}` opt-out for the old blank state behavior ### 7. v14 MessageContext docs still document removed edit-state and custom-action fields @@ -311,19 +329,19 @@ Current WS5 targets: ### 10. v14 ComponentContext docs are still only partially aligned with the current override keys -- Status: open +- Status: resolved - Evidence: - current `src/context/ComponentContext.tsx` removed or renamed several keys - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` still documents `CustomMessageActionsList`, `EditMessageInput`, `EditMessageModal`, `FileUploadIcon`, `MessageNotification`, `QuotedPoll`, and `ReactionsListModal` + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` now mirrors the current `ComponentContextValue` key set and directs readers toward `WithComponents` - Expected fix: fully reconcile the page with the current `ComponentContextValue` ### 11. many v14 docs examples still pass component overrides directly to `Channel` -- Status: open +- Status: resolved - Evidence: - current `ChannelProps` no longer expose the old forwarded override surface - - many v14 docs examples still use ``, ``, ``, ``, ``, etc. - - `rg` over `data/docs/chat-sdk/react/v14` shows affected examples in message, attachment, modal, thread, AI, and cookbook pages + - the remaining `rg` hits in `data/docs/chat-sdk/react/v14` are supported `Channel` props such as `EmptyPlaceholder`, not stale UI override props + - WS1 through WS5 moved cookbook and guide examples to `WithComponents` or current local prop surfaces where appropriate - Expected fix: migrate examples to `WithComponents` / `ComponentContext` where appropriate, and only keep direct `Channel` props where they still exist in current source ### 12. v14 message-list docs still describe `MessageNotification` and `ScrollToBottomButton` @@ -341,22 +359,22 @@ Current WS5 targets: ### 13. v14 edit-message and cooldown docs still describe removed form/modal and hook APIs -- Status: partial +- Status: resolved - Evidence: - current source removed `EditMessageForm`, `EditMessageModal`, `useEditHandler`, `useCooldownTimer`, and prop-driven `CooldownTimer` - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `EditMessageForm`, `EditMessageModal`, and old `CooldownTimer` customization + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` no longer document the removed edit-form/modal surfaces and instead point readers to the current composer override paths - Expected fix: rewrite edit-message docs around `MessageComposer` / `EditedMessagePreview`, and cooldown docs around `CooldownTimer`, `useCooldownRemaining`, and `useIsCooldownActive` ### 14. v14 reactions docs still describe `ReactionsListModal` and the old `ReactionSelector` prop surface -- Status: partial +- Status: resolved - Evidence: - current source exports `MessageReactionsDetail` instead of `ReactionsListModal` - current `ReactionSelectorProps` no longer accepts `reactionOptions` and the older display/data props - current `MessageReactionsDetail` is dialog content with renamed classnames, not a modal component with the old `str-chat__message-reactions-details*` structure - current `ReactionSelector` markup/classes changed substantially from the old tooltip/avatar/count layout - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` still passes `reactionOptions` into `ReactionSelector` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` still assumes array-only `reactionOptions` from `useComponentContext()` + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` now uses `WithComponents`, `MessageReactionsDetail`, and the current shared `reactionOptions` contract + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` now wires reactions through `WithComponents` and current `ComponentContext` usage - Expected fix: update reactions docs to the current `MessageReactionsDetail` naming, the narrowed `ReactionSelector` props, the current reaction-options shape, and the new selector/detail markup expectations ### 15. v14 poll docs still describe `QuotedPoll`, `Poll.isQuoted`, and old poll-action component names @@ -371,22 +389,22 @@ Current WS5 targets: ### 16. v14 MessageActions docs still describe the removed wrapper/box/custom-actions surface -- Status: partial +- Status: resolved - Evidence: - current source removed `MessageActionsBox`, `MessageActionsWrapper`, and `CustomMessageActionsList` - current `MessageActions` uses `messageActionSet`, quick actions, and `ContextMenu` - - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` still references `CustomMessageActionsList` + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` now uses `defaultMessageActionSet`, `MessageActions`, and `WithComponents` - Expected fix: replace the legacy docs model with current `MessageActions`, action-set items, and `ContextMenu`-based customization ### 17. v14 avatar docs and examples still use the v13 avatar prop names and helper assumptions -- Status: partial +- Status: resolved - Evidence: - current `AvatarProps` use `imageUrl`, `userName`, `isOnline`, and required `size` - current channel/group avatar rendering expects `displayMembers` plus optional `overflowCount` - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` now documents the current prop names, `ChannelAvatar`, and the helper-based channel display image/title flow - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` and `03-ui-cookbook/05-message-input/06-suggestion_list.md` now use the current `Avatar` prop names - - residual custom-message examples in `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` and `03-ui-cookbook/04-message/06-system_message.md` still use old `Avatar` props + - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` and `03-ui-cookbook/04-message/06-system_message.md` now use the current `Avatar` prop names too - Expected fix: finish the remaining avatar-using cookbook examples outside the WS4 page set ### 18. v14 ChannelHeader docs still document the removed `live` prop @@ -400,11 +418,11 @@ Current WS5 targets: ### 19. v14 modal/dialog docs still mix legacy `Modal` usage with stale component-override patterns -- Status: partial +- Status: resolved - Evidence: - current public modal component is `GlobalModal`; the old `Modal` component is no longer exported - current `GlobalModal` no longer renders the legacy `.str-chat__modal__inner` wrapper - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` and `05-component_context.md` still document `Channel`/`ComponentContext` modal override patterns that need reconciliation with the current `WithComponents` model + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md`, `05-component_context.md`, `16-modal.md`, and `04-guides/10-dialog-management.md` now align with the current `WithComponents` and dialog model - Expected fix: rewrite the modal docs around `GlobalModal` and current dialog primitives, mention the removed inner wrapper, then reconcile any remaining modal override guidance with the actual v14 customization surface ### 20. v14 FileIcon docs still use the old prop API @@ -518,11 +536,11 @@ Current WS5 targets: ### 32. v14 installation and migration docs do not call out the newer `stream-chat` minimum -- Status: open +- Status: resolved - Evidence: - current `stream-chat-react/package.json` requires `stream-chat@^9.35.0` - v13 baseline required only `stream-chat@^9.27.2` - - `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` tells users to install both packages but does not call out the v14 minimum or the need to upgrade them together + - `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` now calls out the current `stream-chat` minimum and tells users to upgrade both packages together - Expected fix: mention the new `stream-chat` minimum in the migration guide and add a short version-alignment note to installation docs ### 33. v14 Channel and ChannelList docs still imply old SDK-managed initial query defaults @@ -537,10 +555,10 @@ Current WS5 targets: ### 34. v14 TypeScript custom-data docs still imply default components rely on `subtitle` -- Status: open +- Status: resolved - Evidence: - current `DefaultChannelData` still includes `subtitle`, but the current default `ChannelHeader` no longer renders `channel.data.subtitle` - - `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` still warns that default components expect `subtitle`, `image`, and `name` + - `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` now narrows the warning to the remaining helpers/defaults that still rely on `image` and `name` - Expected fix: narrow the warning so it reflects which default components still actually rely on `DefaultChannelData` fields in v14 ### 35. v14 DateSeparator docs still describe the old `position` / `unread` rendering model @@ -634,70 +652,78 @@ Current WS5 targets: - [x] Finish WS4: layout, headers, lists, threads, indicators - [x] Update Channel docs for current `MessageActions` - [x] Update ComponentContext docs for `MessageAlsoSentInChannelIndicator` -- [ ] Sweep v14 docs for stale `MessageOptions`, `experimental/MessageActions`, renamed exports, and `Channel X={...}` examples +- [x] Sweep v14 docs for stale `MessageOptions`, `experimental/MessageActions`, renamed exports, and `Channel X={...}` examples - [ ] Run docs verification commands ## Page Tracker -| Status | Page | Reason | -| -------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes until merged | -| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | -| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Fixed stale `MessageActions`/`MessageOptions` references, but the page still needs a broader rewrite because component overrides no longer match current `ChannelProps` and `channelQueryOptions` docs still imply the removed default initial message limit | -| partial | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Updated `MessageActions`, removed `MessageOptions`, and fixed `MessageDeleted`/`MessageDeletedBubble` plus `MessageAlsoSentInChannelIndicator`, but several old override keys are still documented | -| open | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Should call out the newer `stream-chat` minimum required by v14 | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, message-text, and bounce-prompt surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | -| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Rewritten to the current `MessageContext` contract and `handleDelete` signature | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageInputContext` surface and dedicated cooldown helpers | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks and `useCooldownRemaining()` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, and `Image` / `Media` / `ModalGallery` surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Rewritten to `MessageReactionsDetail`, the current selector surface, and the current markup expectations | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Still passes `reactionOptions` into `ReactionSelector` and references `ReactionsListModal` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, and scroll-to-latest model | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten to the current `MessageListNotifications` contract and override path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Rewritten to current `Avatar` props, `ChannelAvatar`, and helper-based channel display image/title guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Rewritten to current preview defaults, helpers, status guidance, `aria-pressed` semantics, and action-button behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | Rewritten to current channel-list selectors and explicit `options.limit` guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Rewritten to current display-title/image helpers, preview semantics, and `aria-pressed` button state | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message examples still use old `Avatar` props and stale reactions guidance in places | -| open | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | System-message example still renders `` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Rewritten to current `ChannelHeader` behavior, helper usage, and typing/status subtitle guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives and `GlobalModal` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageInput` props, `Input` override path, and v14 composer behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageInputFlat` composition and `MessageInput Input={...}` usage | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract and `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, and `VoiceRecordingPreviewSlot` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | Rewritten to current custom-header patterns and `TypingIndicatorHeader` usage | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to current sidebar-state props, including `initialNavOpenResponsive` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Updated to current explicit `options.limit` guidance for initial load and pagination | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | -| open | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Still warns that default components expect `subtitle`, which no longer matches the default `ChannelHeader` behavior | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | -| open | `data/docs/chat-sdk/react/v14` (multiple pages) | Many examples still pass UI override props directly to `Channel`; these need migration to `WithComponents` or other current APIs | +| Status | Page | Reason | +| -------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes until merged | +| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Now keeps `Channel` focused on current behavior/data props and points SDK UI overrides to `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Now reflects the current override-key surface and current `WithComponents` guidance | +| resolved | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Now calls out the current `stream-chat` minimum and version-alignment guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, message-text, and bounce-prompt surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Rewritten to the current `MessageContext` contract and `handleDelete` signature | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageInputContext` surface and dedicated cooldown helpers | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks and `useCooldownRemaining()` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, and `Image` / `Media` / `ModalGallery` surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Rewritten to `MessageReactionsDetail`, the current selector surface, and the current markup expectations | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Rewritten to current `WithComponents`, `reactionOptions`, `ReactionSelector`, and `MessageReactionsDetail` patterns | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, and scroll-to-latest model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten to the current `MessageListNotifications` contract and override path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Rewritten to current `Avatar` props, `ChannelAvatar`, and helper-based channel display image/title guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Rewritten to current preview defaults, helpers, status guidance, `aria-pressed` semantics, and action-button behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | Rewritten to current channel-list selectors and explicit `options.limit` guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Rewritten to current display-title/image helpers, preview semantics, and `aria-pressed` button state | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Rewritten to current `WithComponents` registration, `Avatar` props, and reaction wiring | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | Rewritten to current `WithComponents` registration and `Avatar` props | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Rewritten to current `MessageActions`, `defaultMessageActionSet`, and `WithComponents` customization | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` | Updated to current `WithComponents` registration for `PinIndicator` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` | Updated to register `GiphyPreviewMessage` through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` | Updated to register `EmojiPicker` through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Updated custom blocking action guidance to the current `MessageActions` model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` | Updated reminder override example to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` | Updated location-sharing override examples to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` | Added a note clarifying that a few CSS token groups intentionally retain historical `stream-chat-css` names | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Rewritten to current `ChannelHeader` behavior, helper usage, and typing/status subtitle guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives and `GlobalModal` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageInput` props, `Input` override path, and v14 composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageInputFlat` composition and `MessageInput Input={...}` usage | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, and `VoiceRecordingPreviewSlot` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | Rewritten to current custom-header patterns and `TypingIndicatorHeader` usage | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to current sidebar-state props, including `initialNavOpenResponsive` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Updated to current explicit `options.limit` guidance for initial load and pagination | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Warning now reflects the remaining default helpers/components that still rely on `DefaultChannelData` fields | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | +| resolved | `data/docs/chat-sdk/react/v14` (multiple pages) | Repo-wide sweep is complete; remaining `Channel X={...}` examples are current supported props such as `EmptyPlaceholder` | ## Breaking Change Workflow