fix(interactions): resolve alias slug trong api.user-interactions
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đá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
- 76/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
Hướng nghiên cứu
Start with apps/web/app/routes/api.user-interactions.ts around lines 26-28, then read resolveSkillBySlug in apps/web/app/lib/db/skill-aliases.ts. Add a regression test for an old slug pointing to a skill with a favorite or vote, and verify the API returns the expected interaction overlay.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Vấn đề
apps/web/app/routes/api.user-interactions.ts (khoảng dòng 26-28) resolve slug do client gửi lên bằng inArray(skills.slug, slugs), tức chỉ khớp canonical slug. Sau #25, một slug cũ vẫn resolve bình thường trên mọi route khác nhờ bảng skill_aliases, nhưng ở đây thì không: client gửi slug cũ sẽ nhận về overlay rỗng (trạng thái favorite/vote biến mất) mà không có lỗi nào.
Bằng chứng
resolveSkillBySlug(apps/web/app/lib/db/skill-aliases.ts) là đường duy nhất có alias: nó traskills.slugtrước, rồiskill_aliases.slug, rồi lấy row theoskill_id.- Các route khác (detail, rate, review, favorite, install, vote, usage report) đều đã đi qua
resolveSkillBySlug; chỉapi.user-interactions.tscòn tra thẳng theoskills.slug. - Đây là hạn chế đã ghi trong PR #43 phần "Known limitations" và trong ledger
plans/reports/live-verify-260922-0843-issue-25-24.md.
Đề xuất
Cho mỗi slug đầu vào đi qua resolveSkillBySlug (hoặc một truy vấn join skill_aliases), rồi tập hợp canonical id để tra interactions. Thêm test: slug cũ trỏ tới skill có favorite/vote vẫn trả đúng overlay.
Mức độ
Thấp về tác động, nhưng là lỗ hổng nhất quán của hợp đồng alias mà #25 đã thiết lập: "mọi slug cũ vẫn resolve" hiện chưa đúng ở route này.
- Ngôn ngữ chính
- TypeScript
- Star
- 186
- Fork
- 40
- Merge trung bình
- 10 giờ 12 phút
- Pull request đã merge (30 ngày)
- 16
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 nextlevelbuilder/skillx
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
nextlevelbuilder/skillx#65 ·
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
nextlevelbuilder/skillx#63 ·
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 88/100
nextlevelbuilder/skillx#49 ·
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 76/100
nextlevelbuilder/skillx#28 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
refactor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
nextlevelbuilder/skillx#27 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của nextlevelbuilder/skillx
Issue tương tự
-
Add: VIVE TVĐang mởapproved check:passed streams:add
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
iptv-org/iptv#55293 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Fission-AI/OpenSpec#2084 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueĐang mởP1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
SocialGouv/code-du-travail-numerique#7561 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
beginner bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
hiero-ledger/hiero-sdk-js#4517 ·
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 85/100
kubernetes-sigs/headlamp#7950 ·
Maintainer thường phản hồi trong vòng 3 ngày