deepMerge mutates its arguments, corrupting request payloads across calls
@richard-willis-chevin đang làm issue này rồi.
Từ ngày 24/8/2026.
- #350 của @richard-willis-chevin — đang mở
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 72/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- api
Hướng nghiên cứu
Start with the generated deepMerge implementation in src/api//utils.ts and trace how request query hooks call it through fetcherOptions. Reproduce the issue with concurrent createDashboard calls and successive payloads. Done means each request receives an independent body without stale fields leaking from earlier calls.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
deepMerge mutates both arguments instead of returning a new object.
Still present on main.
// deepMerge as generated in src/api/<client>/utils.ts
function deepMerge(target, source) {
const returnType = target || {};
for (const key in source) {
if (source[key] instanceof Object)
Object.assign(source[key], deepMerge(returnType[key], source[key]));
}
Object.assign(returnType || {}, source);
return returnType;
}
const fetcherOptions = {}; // shared per hook instance
const send = (variables) => deepMerge(fetcherOptions, variables);
send({ body: { title: 'Fleet', archivedAt: '2026-01-01' } });
send({ body: { title: 'Costs' } });
// sends { title: 'Costs', archivedAt: '2026-01-01' } — stale field leaked
The bug can be replicated using the generated (request query hooks) code like so:
export function DeepMergeDemoScreen() {
const { mutateAsync: createDashboard, isPending } = useCreateDashboard();
const onRun = async () => {
await Promise.all(
['Demo A', 'Demo B', 'Demo C'].map((title) =>
createDashboard({
body: { title },
}),
),
);
};
return (
<button onClick={onRun}>
{isPending ? 'Creating…' : 'Create 3 dashboards at once'}
</button>
);
}
In the example above the request body payload is incorrect for some of the requests.
- Ngôn ngữ chính
- TypeScript
- Star
- 634
- Fork
- 83
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fabien0102/openapi-codegen
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
fabien0102/openapi-codegen#343 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
fabien0102/openapi-codegen#342 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
fabien0102/openapi-codegen#356 ·
-
update dependencies & removed unused deprecatedCó thể đã có người làm @el-j đã nhận hôm nay. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
fabien0102/openapi-codegen#354 ·
-
Error when migrating to typesrcipt v7Có thể đã có người làm @fujikky đã nhận 43 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
fabien0102/openapi-codegen#348 ·
Tất cả issue của fabien0102/openapi-codegen
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
rajbos/ai-engineering-fluency#2340 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
community documentation first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
lingdojo/kana-dojo#31864 · 1 bình luận · 5 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
zenstackhq/zenstack#2873 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
CLI: TUI shows onboarding when the provider's API key is only in the environment (e.g. OPENROUTER_API_KEY)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởCLI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
cline/cline#14923 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
paperclipai/paperclip#15490 ·
Maintainer thường phản hồi trong vòng 1 ngày