fix(editor): Keep CSV imports tied to the selected file - #37906
Conversation
There was a problem hiding this comment.
No issues found across 2 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would not auto-approve. Auto-approval skipped because this PR is from an external contributor.
Re-trigger cubic
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Hey @Suzu1Dev, Thank you for your contribution. We appreciate the time and effort you’ve taken to submit this pull request. Before we can proceed, please ensure the following: • Your PR references the GitHub issue it fixes (or, for feature requests, a link to the corresponding community forum post). • Tests are included for any new functionality, logic changes or bug fixes. • The PR aligns with our contribution guidelines. Why the linked issue matters: Our teams pick up work from the issue, not from individual pull requests — the issue is what reaches them, with your PR linked to it. So please make sure the issue contains everything needed to judge the change: a clear problem description, reproduction steps, and the expected behaviour. If the issue is thin, add the missing context there rather than only in the PR description. Regarding new nodes: We no longer accept new nodes directly into the core codebase. Instead, we encourage contributors to follow our Community Node Submission Guide to publish nodes independently. If your node integrates with an AI service that you own or represent, please email nodes@n8n.io and we will be happy to discuss the best approach. About review timelines: While we plan to review it as soon as possible, we are currently unable to provide an exact timeframe. Our goal is to begin reviews within a month, but this may change depending on team priorities. We will reach out when the review begins. Please also note that other contributors may have opened pull requests for the same issue. We keep them all open so the reviewing team can choose the approach that fits best. Once the issue is resolved, the remaining pull requests are closed — this is not a judgement on the quality of your work, and we're grateful for it either way. Thank you again for contributing to n8n. |
Summary
Replacing a CSV in the data-table import dialog can leave the previous upload ID active. Import can then send the old file ID while the dialog displays the new file's name. An older upload that finishes last can cause the same result after both uploads complete.
Clear completed upload metadata when a new upload starts. Disable Import until the current upload is ready. Reuse
useLatestFetchto guard upload results, errors, and loading cleanup. Invalidate pending uploads when the dialog resets or the component unmounts.Codex assisted with the implementation, regression tests, and draft text.
How to test
From
packages/frontend/editor-ui, run:pnpm test src/features/core/dataTable/components/ImportCsvModal.test.ts src/app/composables/useLatestFetch.test.ts pnpm lint pnpm typecheckThe component tests use the real upload control and deferred API responses. They cover file replacement, reversed response order, old errors, loading state, dialog reset, unmount, and files with the same name. The import assertion checks the current file ID sent to the store action.
For manual verification, use an existing data table with
nameandagecolumns. Upload A.csv, then replace it with B.csv while delaying B's response. Import must stay disabled until B is ready. Complete B before A in a separate run. Import must still use B after both responses arrive.Automated validation uses a rendered test DOM and mocked API actions. No live browser, backend, or database was used. See the linked issue for sample CSV contents and detailed steps.
Validation results:
33eb5c196e0ce3a2c71525929a4ef861cb94b168with the regression tests: 10 failed and 9 passed. The failures reproduce the enabled Import button and the old file ID.The full repository test suite was not run.
Related Linear tickets, Github issues, and Community forum posts
Fixes #37905
https://linear.app/n8n/issue/GHC-9419
Review / Merge checklist
Backport to Beta,Backport to Stable, orBackport to v1(if the PR is an urgent fix that needs to be backported)🤖 PR Summary generated by AI