fix(api): the feature-flag list has no defined order across pages
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/100
Hướng nghiên cứu
Bắt đầu với get_multi trong backend/app/crud/base.py, hàm này tạo truy vấn phân trang theo offset mà không có ORDER BY, rồi theo dõi luồng xử lý từ handler GET /api/v1/feature-flags/. Thêm một thứ tự sắp xếp xác định, ví dụ created_at rồi đến id, và kiểm tra danh sách feature flag vẫn trả về cùng tổng số. Hoàn thành khi các trang skip/limit liên tiếp chia các flag thành các phần không chồng lấn, được xác minh bằng một bài kiểm thử phân trang. Nếu tồn tại sdk/mcp/tools.json, hãy cập nhật mô tả của list_feature_flags cho khớp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
GET /api/v1/feature-flags/ pages with skip and limit, but the query behind it has no ORDER BY (backend/app/crud/base.py, get_multi: offset paging with no order). PostgreSQL then returns rows in whatever order the plan produces, which can change between two requests.
What goes wrong: a client that pages through the list (the dashboard, a script, an SDK helper, the planned MCP server's list_feature_flags) can see a flag on two pages, or on none, when the order shifts between page requests. total is still right; only the page contents are unstable.
Expected: a defined, stable order for the list (for example created_at then id), so that consecutive pages partition the flags.
When it is fixed: the fix also updates the description of list_feature_flags in sdk/mcp/tools.json (if sdk/mcp exists by then), which today says the list has no defined order, and restores the paging half of that tool's contract test.
Found while planning the MCP server (#1607). Priority is set in the pre-launch bug triage.
- Ngôn ngữ chính
- Python
- Star
- 0
- Fork
- 4
- Merge trung bình
- 5 giờ 19 phút
- Pull request đã merge (30 ngày)
- 503
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
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 Controlvar/controlvar
-
Dashboard: the sequential panel's "Ready to stop" banner shows no sample-ratio-mismatch cautionĐang mởbug post-launch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Controlvar/controlvar#1737 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug post-launch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Controlvar/controlvar#1562 ·
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 90/100
Controlvar/controlvar#1447 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Experiment setup: emptying a traffic share box and typing a number shows a leading zero ("034")Đang mởbug post-launch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Controlvar/controlvar#1428 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug post-launch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Controlvar/controlvar#1425 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Controlvar/controlvar
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
huggingface/deep-rl-class#723 ·
-
[tool] bug: Qwen3 XML tool parser raises on `...` argument values (Ellipsis is not JSON serializable)Có thể đã có người làm @super-yuki đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
verl-project/verl#8559 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
TencentCloud/octop-harness#228 ·
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 78/100
google/osv-scalibr#2585 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
NousResearch/hermes-agent#149323 ·
Maintainer thường phản hồi trong vòng 1 ngày