Skip to content

Add installed repo and exclude filters#168

Merged
ryota-murakami merged 3 commits into
mainfrom
feat/installed-repo-exclude-filters
May 20, 2026
Merged

Add installed repo and exclude filters#168
ryota-murakami merged 3 commits into
mainfrom
feat/installed-repo-exclude-filters

Conversation

@ryota-murakami

@ryota-murakami ryota-murakami commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add an Installed toolbar source repository facet with counts
  • add skill-type exclude filters with reducer guards and shared selector logic
  • update empty-state/filter-pill UI and cover the new flows with selector, slice, helper, and browser tests
  • refresh the root pnpm lockfile config checksum so CI frozen installs pass

Validation

  • pnpm install --frozen-lockfile
  • pnpm validate
  • git diff --check origin/main
  • GitHub Actions: build, lint, typecheck, test, e2e, fallow dead-code/dupes/health all passing
  • Vercel preview passing
  • CodeRabbit completed successfully

Review Notes

  • Local /review found no remaining implementation issues after removing unnecessary internal exports
  • Electron QA and web design review were run with ignored artifacts under qa-reports/
  • Claude review was requested, but Claude CLI auth was missing locally, so it did not run

Summary by CodeRabbit

リリースノート

  • 新機能

    • スキルタイプフィルタに除外機能を追加しました。特定のスキル種別を検索結果から除外できるようになります。
    • ツールバーにリポジトリ選択用ドロップダウンを追加しました。ソースを絞り込んで検索できます。
  • 改善

    • 空の検索結果表示メッセージを改善し、適用中のフィルタ情報を明確に表示するようにしました。
    • UI のレイアウトを調整し、フィルタ表示の見た目を最適化しました。
  • テスト

    • 新しいフィルタ機能の動作を検証するテストを追加しました。

Review Change Stack

@vercel

vercel Bot commented May 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
skills-desktop Ready Ready Preview, Comment May 20, 2026 11:10am

Request Review

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: aa29e6e6-cac9-45b0-8ca8-2dce9717e6df

📥 Commits

Reviewing files that changed from the base of the PR and between e4626e8 and ef36edf.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !pnpm-lock.yaml
📒 Files selected for processing (1)
  • src/renderer/src/components/layout/MainContent.tsx

Walkthrough

スキル種別の除外フィルタとリポジトリ(ソース)ファセットを追加。Redux に excludedSkillTypeFilters を導入し、セレクタで除外を差し引いたフィルタ結果とソース別件数を生成。MainContent に除外チェックと repo ドロップダウンを実装し、空状態メッセージに除外文脈を反映。

Changes

Exclude filters and repository facet feature

Layer / File(s) Summary
Redux exclude filter state foundation
src/renderer/src/redux/slices/uiSlice.ts, src/renderer/src/redux/slices/uiSlice.test.ts
UiStateexcludedSkillTypeFilters を追加。ExcludableSkillTypeFilter 型、getAvailableExcludeTypestoggleExcludedSkillTypeFilterclearExcludedSkillTypeFiltersselectExcludedSkillTypeFilters を実装し、エージェント/タイプ切替で初期化・プルーニング。テストで toggle/prune/reset を検証。
Selector filter logic with excludes and repo facet
src/renderer/src/redux/selectors.ts, src/renderer/src/redux/selectors.test.ts
selectFilteredSkillsapplyAgentAndTypeFilters にまとめ、excludedSkillTypeFilters を差し引くロジックへ変更。新規 selectRepoFacetOptions で可視スキルを skill.source ごとに集計して repo/count を返す。関連テストを追加。
MainContent UI: exclude toggles and repo facet dropdown
src/renderer/src/components/layout/MainContent.tsx, src/renderer/src/components/layout/MainContent.browser.test.tsx
上部ツールバーに repo(source)ファセットドロップダウンを追加。Skill type フィルタ内に Exclude セクション(チェックボックス、無効理由、Clear excludes)を追加し、ドロップダウンを閉じないトグル挙動と Redux ハンドラを実装。ブラウザテストを aria-label と選択フローに合わせて更新。
Empty-state message: exclude filter context
src/renderer/src/components/skills/skillsListHelpers.ts, src/renderer/src/components/skills/skillsListHelpers.test.ts, src/renderer/src/components/skills/SkillsList.tsx, src/renderer/src/components/ui/FilterPill.tsx
EmptyMessageContextexcludedSkillTypeFilters を追加。EXCLUDED_SKILL_TYPE_FILTER_LABELSwithExcludeContext 等で "while excluding " を生成・付与。SkillsList から除外情報を渡して表示文言を更新。FilterPill のレイアウト調整を含む。

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • laststance/skills-desktop#132: selectFilteredSkills の agent-scoped orphan/symlink ルール変更と関連するセレクタロジックの重複箇所があるためコードレベルで関連。
  • laststance/skills-desktop#121: selectedSource / getEmptyListMessage と repo/source フィルタ経路の修正が重なり、空状態メッセージ周りで関連。
  • laststance/skills-desktop#146: orphan フィルタ追加により同一 selectFilteredSkills の agent/type 判定を編集しており、exclude ロジックと関係が深い。
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PRタイトル「Add installed repo and exclude filters」は、変更内容の主要な2つの機能(リポジトリファセット追加と除外フィルタ実装)を正確に要約しており、変更セット全体の意図を明確に反映している。
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/installed-repo-exclude-filters

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/renderer/src/components/layout/MainContent.tsx`:
- Around line 200-203: selectedSkillTypeLabel uses a non-null assertion on
SKILL_TYPE_FILTER_OPTIONS.find(... ) which can throw if no match for
skillTypeFilter; change to a safe lookup and provide a fallback label (e.g.,
empty string or "Unknown") by using optional chaining or conditional logic
instead of `!`, and keep availableExcludeTypes =
getAvailableExcludeTypes(skillTypeFilter) as-is; update the expression that
computes selectedSkillTypeLabel to handle undefined cases so the UI never
accesses `.label` on undefined.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 00bbb4ab-2a29-4a3a-b5c3-49960e314b54

📥 Commits

Reviewing files that changed from the base of the PR and between b20b031 and e4626e8.

📒 Files selected for processing (10)
  • src/renderer/src/components/layout/MainContent.browser.test.tsx
  • src/renderer/src/components/layout/MainContent.tsx
  • src/renderer/src/components/skills/SkillsList.tsx
  • src/renderer/src/components/skills/skillsListHelpers.test.ts
  • src/renderer/src/components/skills/skillsListHelpers.ts
  • src/renderer/src/components/ui/FilterPill.tsx
  • src/renderer/src/redux/selectors.test.ts
  • src/renderer/src/redux/selectors.ts
  • src/renderer/src/redux/slices/uiSlice.test.ts
  • src/renderer/src/redux/slices/uiSlice.ts

Comment thread src/renderer/src/components/layout/MainContent.tsx Outdated
@codecov-commenter

codecov-commenter commented May 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.07080% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.06%. Comparing base (b4c324c) to head (ef36edf).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/renderer/src/components/layout/MainContent.tsx 71.73% 9 Missing and 4 partials ⚠️
src/renderer/src/redux/slices/uiSlice.ts 85.00% 2 Missing and 1 partial ⚠️
...enderer/src/components/skills/skillsListHelpers.ts 90.90% 0 Missing and 1 partial ⚠️
src/renderer/src/redux/selectors.ts 97.14% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #168      +/-   ##
==========================================
+ Coverage   55.56%   56.06%   +0.50%     
==========================================
  Files         184      184              
  Lines        4571     4664      +93     
  Branches      950      975      +25     
==========================================
+ Hits         2540     2615      +75     
- Misses       1819     1830      +11     
- Partials      212      219       +7     
Flag Coverage Δ
unittests 56.06% <84.07%> (+0.50%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants