Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

fix(interactions): resolve alias slug trong api.user-interactions

オープン
#47 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
76/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

bug

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ó tra skills.slug trước, rồi skill_aliases.slug, rồi lấy row theo skill_id.
  • Các route khác (detail, rate, review, favorite, install, vote, usage report) đều đã đi qua resolveSkillBySlug; chỉ api.user-interactions.ts còn tra thẳng theo skills.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.

主要言語
TypeScript
スター
189
フォーク
40
平均マージ
6時間 54分
マージ済み PR(30日)
24

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextlevelbuilder/skillx のほかの issue

nextlevelbuilder/skillx の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。