fix: Ingestion of buckets not working right after connection is tested (backport of #1942)#2019
Conversation
…d - CPD #75506 (#1942) * fix: update bucket ingestion messages for clarity and consistency * fix: guard bucket pre-selection against connection ID mismatch The defaults query returns the first S3/COS connection regardless of active status. Only pre-select saved bucket_names when the defaults connection_id matches the current connector.connectionId to avoid seeding the wrong buckets if a stale connection exists alongside the active one. Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * fix: prevent defaults from overwriting user bucket selections Two issues in the initial-selection effect: 1. hasAppliedInitial was only set when valid buckets were found, leaving the effect live across bucket refreshes and allowing stale defaults to overwrite selections made after a refetch. 2. No guard against the async race where buckets loads before initialSelectedBuckets: user clicks buckets, defaults arrive later and silently overwrite them. Fix: mark hasAppliedInitial unconditionally on first evaluation, and only apply defaults when selectedBuckets is still empty (user hasn't acted yet). Co-Authored-By: Claude Sonnet 4.6 <[email protected]> --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]> (cherry picked from commit f3823b8)
WalkthroughAdds default-driven initial bucket selection to bucket views. SharedBucketView gains an optional ChangesBucket pre-selection from connector defaults
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant BucketView as S3/IBM COS BucketView
participant DefaultsQuery
participant SharedBucketView
BucketView->>DefaultsQuery: fetch connector defaults
DefaultsQuery-->>BucketView: defaults (connection_id, bucket_names)
BucketView->>SharedBucketView: initialSelectedBuckets (matched or undefined)
SharedBucketView->>SharedBucketView: buckets loaded
alt selection empty & not yet applied
SharedBucketView->>SharedBucketView: filter initialSelectedBuckets against buckets
SharedBucketView->>SharedBucketView: setSelectedBuckets, mark applied
end
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
React Doctor found 6 new issues in 1 file · 6 warnings · score 85 / 100 (Great) · 0 fixed · vs 6 warnings
Reviewed by React Doctor for commit |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
frontend/components/connectors/aws-s3/bucket-view.tsx (1)
42-46: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDuplicate connection-matching logic across connector views.
The
defaults?.connection_id === connector.connectionId ? defaults?.bucket_names : undefinedpattern is duplicated verbatim in the IBM COS bucket view (frontend/enhancements/connectors/ibm-cos/components/bucket-view.tsx, lines 44-47). Consider extracting a small shared helper (e.g.,getMatchingDefaultBuckets(defaults, connectionId)) to avoid drift between connectors as more providers are added.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/components/connectors/aws-s3/bucket-view.tsx` around lines 42 - 46, The bucket view is repeating the same connection-id match logic for selecting initial buckets, which risks drift as more connector views are added. Extract the conditional from the AWS S3 bucket view’s initialSelectedBuckets usage into a shared helper such as getMatchingDefaultBuckets(defaults, connectionId), then reuse that helper in both the AWS S3 and IBM COS bucket view components so the matching behavior stays consistent in one place.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/components/connectors/shared-bucket-view.tsx`:
- Around line 69-85: The useEffect in shared-bucket-view is suppressing
dependencies with an ESLint comment that Biome will ignore. Replace the
suppression near the bucket initialization effect with the proper Biome ignore
syntax, or include selectedBuckets in the dependency array if the effect should
re-run when it changes. Keep the fix localized to the useEffect that sets
initial bucket selection in SharedBucketView.
---
Nitpick comments:
In `@frontend/components/connectors/aws-s3/bucket-view.tsx`:
- Around line 42-46: The bucket view is repeating the same connection-id match
logic for selecting initial buckets, which risks drift as more connector views
are added. Extract the conditional from the AWS S3 bucket view’s
initialSelectedBuckets usage into a shared helper such as
getMatchingDefaultBuckets(defaults, connectionId), then reuse that helper in
both the AWS S3 and IBM COS bucket view components so the matching behavior
stays consistent in one place.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d0344a3f-da5c-45a9-8bc6-0c40fba8d2ed
📒 Files selected for processing (3)
frontend/components/connectors/aws-s3/bucket-view.tsxfrontend/components/connectors/shared-bucket-view.tsxfrontend/enhancements/connectors/ibm-cos/components/bucket-view.tsx
| useEffect(() => { | ||
| if ( | ||
| !hasAppliedInitial.current && | ||
| buckets?.length && | ||
| initialSelectedBuckets?.length | ||
| ) { | ||
| hasAppliedInitial.current = true; | ||
| if (selectedBuckets.size === 0) { | ||
| const valid = initialSelectedBuckets.filter((name) => | ||
| buckets.some((b) => b.name === name), | ||
| ); | ||
| if (valid.length) { | ||
| setSelectedBuckets(new Set(valid)); | ||
| } | ||
| } | ||
| } | ||
| }, [buckets, initialSelectedBuckets]); // eslint-disable-line react-hooks/exhaustive-deps |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Confirm project lint tooling and existing suppression conventions
fd -e json -i biome
rg -n "eslint-disable" --type=tsx --type=ts -g 'frontend/**'
rg -n "biome-ignore" -g 'frontend/**'Repository: langflow-ai/openrag
Length of output: 205
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== biome config =="
cat -n frontend/biome.json
echo
echo "== target file excerpt =="
sed -n '1,140p' frontend/components/connectors/shared-bucket-view.tsx | cat -n
echo
echo "== existing suppression conventions =="
rg -n --glob 'frontend/**/*.{ts,tsx,js,jsx,json}' 'eslint-disable|biome-ignore' frontendRepository: langflow-ai/openrag
Length of output: 10330
🌐 Web query:
Biome eslint-disable-line react-hooks/exhaustive-deps support suppression comments useExhaustiveDependencies
💡 Result:
Biome does not use the ESLint-specific eslint-disable-line comment syntax [1]. Instead, Biome uses its own suppression system based on biome-ignore comments [1]. To suppress the useExhaustiveDependencies rule, you can use the following syntax: // biome-ignore lint/correctness/useExhaustiveDependencies: reason for suppression useEffect( => { //... }, []); Additionally, Biome allows you to ignore specific dependencies by specifying them in parentheses within the suppression comment [2]. This is useful if you only want to suppress the diagnostic for a particular variable without disabling the entire rule for that hook [2]: // biome-ignore lint/correctness/useExhaustiveDependencies(variableName): suppress dependency variableName useEffect( => { console.log(variableName); }, []); If you need to ignore multiple dependencies, you can provide multiple suppression comments [2]: // biome-ignore lint/correctness/useExhaustiveDependencies(a): suppress dependency a // biome-ignore lint/correctness/useExhaustiveDependencies(b): suppress dependency b useEffect( => { console.log(a, b); }, []); Biome official documentation emphasizes that suppressing this rule carries a high risk because it allows you to bypass React's dependency safety checks, so it is recommended to adjust your code rather than suppressing the rule when possible [2].
Citations:
- 1: https://biomejs.dev/analyzer/suppressions/
- 2: https://github.com/biomejs/biome/blob/main/crates/biome_js_analyze/src/lint/correctness/use_exhaustive_dependencies.rs
Replace the ESLint suppression with Biome syntax
frontend/components/connectors/shared-bucket-view.tsx:85 won’t suppress useExhaustiveDependencies under Biome. Use a Biome ignore comment here, or add selectedBuckets to the dependency list if that’s the intended behavior.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@frontend/components/connectors/shared-bucket-view.tsx` around lines 69 - 85,
The useEffect in shared-bucket-view is suppressing dependencies with an ESLint
comment that Biome will ignore. Replace the suppression near the bucket
initialization effect with the proper Biome ignore syntax, or include
selectedBuckets in the dependency array if the effect should re-run when it
changes. Keep the fix localized to the useEffect that sets initial bucket
selection in SharedBucketView.
Source: Path instructions
| initialSelectedBuckets?: string[]; | ||
| } | ||
|
|
||
| export function SharedBucketView({ |
There was a problem hiding this comment.
React Doctor · react-doctor/no-giant-component (warning)
Component "SharedBucketView" is 313 lines long, which is hard to read & change. Split it into a few smaller components.
Fix → Pull each section into its own component so the parent is easier to read, test, and change.
| useEffect(() => { | ||
| if ( | ||
| !hasAppliedInitial.current && | ||
| buckets?.length && |
There was a problem hiding this comment.
React Doctor · react-doctor/no-event-handler (warning)
Faking an event handler with a prop plus a useEffect costs an extra render & runs late.
Fix → Run the side effect in the event handler that triggers it, instead of watching its state from a useEffect. See https://react.dev/learn/you-might-not-need-an-effect#sharing-logic-between-event-handlers
| if ( | ||
| !hasAppliedInitial.current && | ||
| buckets?.length && | ||
| initialSelectedBuckets?.length |
There was a problem hiding this comment.
React Doctor · react-doctor/no-event-handler (warning)
Faking an event handler with a prop plus a useEffect costs an extra render & runs late.
Fix → Run the side effect in the event handler that triggers it, instead of watching its state from a useEffect. See https://react.dev/learn/you-might-not-need-an-effect#sharing-logic-between-event-handlers
| initialSelectedBuckets?.length | ||
| ) { | ||
| hasAppliedInitial.current = true; | ||
| if (selectedBuckets.size === 0) { |
There was a problem hiding this comment.
React Doctor · react-doctor/no-event-handler (warning)
Faking an event handler with state plus a useEffect costs an extra render & runs late.
Fix → Run the side effect in the event handler that triggers it, instead of watching its state from a useEffect. See https://react.dev/learn/you-might-not-need-an-effect#sharing-logic-between-event-handlers
| buckets.some((b) => b.name === name), | ||
| ); | ||
| if (valid.length) { | ||
| setSelectedBuckets(new Set(valid)); |
There was a problem hiding this comment.
React Doctor · react-doctor/no-derived-state (warning)
Storing "selectedBuckets" in state when you can derive it from other values costs an extra render.
Fix → Work out the value while rendering (or with useMemo if it's expensive) instead of copying it into useState through a useEffect. See https://react.dev/learn/you-might-not-need-an-effect#updating-state-based-on-props-or-state
| } | ||
| } | ||
| } | ||
| }, [buckets, initialSelectedBuckets]); // eslint-disable-line react-hooks/exhaustive-deps |
There was a problem hiding this comment.
React Doctor · react-doctor/exhaustive-deps (warning)
useEffect can run with a stale selectedBuckets.size & show your users old data.
Fix → Don't blindly add missing dependencies. Read the hook callback first.
Bad:
useEffect(() => {
setCount(count + 1);
}, [count]);
Better:
useEffect(() => {
setCount((currentCount) => currentCount + 1);
}, []);
If the missing value is recreated every render, move it inside the hook or stabilize it before adding it to deps.
…to release-saas-ga-0.6.2 (#2021) * fix: error in skip duplicates functionality for folder ingest for connectors (backport of #1941) (#2018) * fix: error in skip duplicates functionality for folder ingest for connectors 75616(#1842) (#1941) * fix: enhance duplicate handling and indexing for connector file uploads * style: ruff autofix (auto) * fix: improve duplicate handling in connector sync functionality * chore: trigger CodeRabbit --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> (cherry picked from commit effaf02) * style: ruff autofix (auto) * fix: remove duplicate test definitions from main merge The automated merge-from-main on this branch concatenated two tests (test_connector_processor_indexes_cleaned_filename, test_langflow_connector_processor_uses_cleaned_filename) that already existed under both names, tripping ruff F811. Keep one copy of each, preferring the version wired with connector_id_exists=True to match current check_document_exists behavior. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> (cherry picked from commit 286e9db) * fix: Ingestion of buckets not working right after connection is tested - CPD #75506 (#1942) (#2019) * fix: update bucket ingestion messages for clarity and consistency * fix: guard bucket pre-selection against connection ID mismatch The defaults query returns the first S3/COS connection regardless of active status. Only pre-select saved bucket_names when the defaults connection_id matches the current connector.connectionId to avoid seeding the wrong buckets if a stale connection exists alongside the active one. * fix: prevent defaults from overwriting user bucket selections Two issues in the initial-selection effect: 1. hasAppliedInitial was only set when valid buckets were found, leaving the effect live across bucket refreshes and allowing stale defaults to overwrite selections made after a refetch. 2. No guard against the async race where buckets loads before initialSelectedBuckets: user clicks buckets, defaults arrive later and silently overwrite them. Fix: mark hasAppliedInitial unconditionally on first evaluation, and only apply defaults when selectedBuckets is still empty (user hasn't acted yet). --------- (cherry picked from commit f3823b8) Co-authored-by: Claude Sonnet 4.6 <[email protected]> (cherry picked from commit 36f115f) * fix: handle orphan files and return appropriate responses when syncing connectors (#1785) (#2016) * feat: handle orphan files and return appropriate responses when syncing connectors * feat: refactor GoogleDriveOAuth to separate required scopes and add handling for missing optional group scopes in tests * style: ruff autofix (auto) * feat: add handling for skipped files and warnings in task processing and UI components --------- (cherry picked from commit aca865a) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> (cherry picked from commit 79b33f0) * fix: enhance error handling for document processing and add OCR requirement check for image files (#1859) (#2017) * fix: enhance error handling for document processing and add OCR requirement check for image files * style: ruff autofix (auto) * remove clickhouse connect from langflow image (#1801) * chore: fix ci (#1889) * Update processors.py * test fix * fix ci --------- (cherry picked from commit a286581) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira <[email protected]> Co-authored-by: Edwin Jose <[email protected]> (cherry picked from commit 4c6acd8) --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <[email protected]> Co-authored-by: Lucas Oliveira <[email protected]> Co-authored-by: Edwin Jose <[email protected]>
…model option (#2031) * fix: remediate image_scan CVEs in backend, frontend, and langflow images (#2000) * fix light color text catergory chips in light mode (#2013) Co-authored-by: Olfa Maslah <[email protected]> * fix: upgraded version of docling (#1995) * changed version of docling * fix logs not being the correct ones * go back to sequential building to save space * add cache to builds * remove single use results from docling manager * revert single use results * change the ray tenant id header * added env * changed cache to hit if no changes were made * fix hash for cache * style: ruff autofix (auto) * fixed coderabbit * style: ruff autofix (auto) * added comment on docling manager * style: ruff autofix (auto) --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * feat: add chunk level page source (#2015) * Changed export docling document to append page number * update result on frontend to append page number * document how to get page number in readmes * Update flows/components/export_docling_document.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update flows/components/export_docling_document.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix: apply CodeRabbit auto-fixes Fixed 1 file(s) based on 1 unresolved review comment. Co-authored-by: CodeRabbit <[email protected]> * update component code --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: CodeRabbit <[email protected]> * fix: error in skip duplicates functionality for folder ingest for connectors (backport of #1941) (#2018) * fix: error in skip duplicates functionality for folder ingest for connectors 75616(#1842) (#1941) * fix: enhance duplicate handling and indexing for connector file uploads * style: ruff autofix (auto) * fix: improve duplicate handling in connector sync functionality * chore: trigger CodeRabbit --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> (cherry picked from commit effaf02) * style: ruff autofix (auto) * fix: remove duplicate test definitions from main merge The automated merge-from-main on this branch concatenated two tests (test_connector_processor_indexes_cleaned_filename, test_langflow_connector_processor_uses_cleaned_filename) that already existed under both names, tripping ruff F811. Keep one copy of each, preferring the version wired with connector_id_exists=True to match current check_document_exists behavior. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: Ingestion of buckets not working right after connection is tested - CPD #75506 (#1942) (#2019) * fix: update bucket ingestion messages for clarity and consistency * fix: guard bucket pre-selection against connection ID mismatch The defaults query returns the first S3/COS connection regardless of active status. Only pre-select saved bucket_names when the defaults connection_id matches the current connector.connectionId to avoid seeding the wrong buckets if a stale connection exists alongside the active one. * fix: prevent defaults from overwriting user bucket selections Two issues in the initial-selection effect: 1. hasAppliedInitial was only set when valid buckets were found, leaving the effect live across bucket refreshes and allowing stale defaults to overwrite selections made after a refetch. 2. No guard against the async race where buckets loads before initialSelectedBuckets: user clicks buckets, defaults arrive later and silently overwrite them. Fix: mark hasAppliedInitial unconditionally on first evaluation, and only apply defaults when selectedBuckets is still empty (user hasn't acted yet). --------- (cherry picked from commit f3823b8) Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix: handle orphan files and return appropriate responses when syncing connectors (#1785) (#2016) * feat: handle orphan files and return appropriate responses when syncing connectors * feat: refactor GoogleDriveOAuth to separate required scopes and add handling for missing optional group scopes in tests * style: ruff autofix (auto) * feat: add handling for skipped files and warnings in task processing and UI components --------- (cherry picked from commit aca865a) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: enhance error handling for document processing and add OCR requirement check for image files (#1859) (#2017) * fix: enhance error handling for document processing and add OCR requirement check for image files * style: ruff autofix (auto) * remove clickhouse connect from langflow image (#1801) * chore: fix ci (#1889) * Update processors.py * test fix * fix ci --------- (cherry picked from commit a286581) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira <[email protected]> Co-authored-by: Edwin Jose <[email protected]> * fix: bump golang.org/x/net to v0.55.0 to remediate CVE-2026-25680 and CVE-2026-39821 (#2014) * feat: add new design for messages and add inline references (#2020) * update opensearch multimodal and flows to support parser, chunk size and chunk overlap * update backend to support citations and chunk metadata * update frontend to support citations and metadata, implement new design for assistant message * changed the prompt for the agent * changed the prompt for the agent * remove hallucinated chunk references * adjust design of citations and where popover appears * adjusted design for message, popover and cards * fix React Doctor picks * fix: apply CodeRabbit auto-fixes Fixed 5 file(s) based on 4 unresolved review comments. Co-authored-by: CodeRabbit <[email protected]> * style: apply biome auto-fixes [skip ci] * updated colors in ibm mode * fixed react doctor picks * added correct type and validation for function calls * remove style for message when on onboarding * fix message not being w full * remove search query in end of the message * change popup to use shadcn popover * fix coderabbit's suggestion * increase prompt limit --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: CodeRabbit <[email protected]> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * apply new settings on retry (#2010) * fix: preserve HTTPException status in update_docling_preset (#1586) (#2004) * fix: report actual synced connection count in connector_sync (#1547) (#2006) * fix: restore LLM model values in reapply_all_settings fallback (#1587) (#2008) * fix: prevent partial matches for exact token searches (#2003) * fix: prevent partial matches for exact token searches (#1937) * style: ruff autofix (auto) * chore: remove unused json import --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: target agent component when updating chat flow system prompt (#2001) * fix: target langflow agent component for system prompt update instead of provider LLM component Signed-off-by: vchen7629 <[email protected]> * fix: removed unused llm_provider arg from _update_langflow_system_prompt Signed-off-by: vchen7629 <[email protected]> * test: add unit tests for update_chat_flow_system_prompt Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) * fix(test): resolve flow path relative to repo root in test_langflow_agent_system_prompt Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) --------- Signed-off-by: vchen7629 <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: replaced hardcoded docker.io prefix with a env variable prefix for private repo compatibility (#2002) Signed-off-by: vchen7629 <[email protected]> * fix: resolve Pydantic delta serialization warnings in agent streaming (#2005) * fix: updated agent model dump to exclude delta field Signed-off-by: vchen7629 <[email protected]> * test: added regression unit test to verify response field + no warnings * style: ruff autofix (auto) * test: added additional unit test to verify that model_dump without exclusion raises the warning Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) * test: tighten delta warning assertion to match specific Pydantic error Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) --------- Signed-off-by: vchen7629 <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: prevent exception details from leaking in API error responses (#2007) * fix: removed str(e) in exceptions to prevent internals from leaking Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) * fix: added missing status_code Signed-off-by: vchen7629 <[email protected]> * style: ruff autofix (auto) --------- Signed-off-by: vchen7629 <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * Changed docling options to include local support and be shown in the Langflow tab * style: ruff autofix (auto) * enable ollama and delete unused file * fix next lint --------- Signed-off-by: vchen7629 <[email protected]> Co-authored-by: Gautham N Pai <[email protected]> Co-authored-by: Wallgau <[email protected]> Co-authored-by: Olfa Maslah <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: CodeRabbit <[email protected]> Co-authored-by: Rico Furtado <[email protected]> Co-authored-by: Claude Sonnet 4.6 <[email protected]> Co-authored-by: Edwin Jose <[email protected]> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Mike Fortman <[email protected]> Co-authored-by: hunterxtang <[email protected]> Co-authored-by: NishadA05 <[email protected]> Co-authored-by: Zephyrus <[email protected]>
Backport of #1942 from
release-cpdtomain.mainhas since refactored the monolithic bucket-picker (BucketViewinupload/[provider]/page.tsx) into a sharedSharedBucketViewcomponent plus per-connector wrappers (frontend/components/connectors/aws-s3/bucket-view.tsx,frontend/enhancements/connectors/ibm-cos/components/bucket-view.tsx). Ported the original fix's actual behavior change — pre-selecting a connector's saved default buckets when opening the bucket picker — into that new structure:SharedBucketViewgains aninitialSelectedBucketsprop and a one-time effect that pre-selects them once buckets load.useXDefaultsQueryhook and passinitialSelectedBucketsthrough, gated on the defaults belonging to the currently connected connection.The label/toast copy changes from the original PR were dropped —
mainalready carries its own, more recent wording for both S3 and IBM COS settings screens, and applying the older CPD copy would have been a regression against that.Test plan
tsc --noEmitclean on touched files🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes