feat: metadata-enhanced repo search and double-click to open in browser#80
Conversation
- Add description, language, topics fields to RepoItem JSON decoding - Add same fields to Repository model with sensible defaults - Map through Repository.from(item:) factory - Extend RepoAutocompleteScoring to match against topics (exact/prefix/substring), language (exact/prefix/substring), and description (substring/subsequence) with graduated weights so topic matches provide strong signals - Show description + language badge in the autocomplete dropdown UI - Add 7 new tests covering topic, language, description matching and fallback behavior
- Add application/vnd.github.mercy-preview+json Accept header to userReposSorted, userReposPaginated, and searchRepositories so GitHub returns topics in the response - Thread headers parameter through fetchAllPages to authorizedGet - Show description + language badge in the Add Repo window (previously the UI only showed the old fullName/issue-count layout) - Extract reusable Badge view for the Add Repo window Previously topics were always empty because GitHub requires the mercy-preview media type, and the Add Repo window didn't display any metadata fields, making the metadata-enhanced scoring invisible to users of that UI.
…, topics The large 'Search repositories' table search (RepoBrowserRow.matches) was only searching fullName, owner, name, and labels — it missed the recently-added metadata fields (description, language, topics) that were only used in the 'Add Rule' autocomplete scoring. Now the table search also finds repos by their description text, programming language, and GitHub topics. - Added description, language, topics to RepoBrowserRow - Populated from Repository in RepoBrowserRows.make() - manualRow gets defaults (nil, nil, []) - matches() now searches the combined haystack including these fields
Double-clicking any row in the Settings → Repositories table now opens the GitHub URL in the default browser. Uses the existing RepoWebURLBuilder (which supports GHE hosts) and NSWorkspace.shared.open. - Added import AppKit, webURLBuilder, and openInGitHub helper - Added .onTapGesture(count: 2) on the Repository table column cell - Added .help tooltip hinting at the double-click action
|
Codex review: needs maintainer review before merge. Reviewed June 13, 2026, 5:42 AM ET / 09:42 UTC. Summary Reproducibility: not applicable. as a bug reproduction: this is a feature PR. The changed behavior is verified through Settings repository metadata search and the table primary action, with maintainer exact-head proof on f4b9e53. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Next step before merge
Security Review detailsBest possible solution: Land the PR after normal exact-head CI and maintainer merge gates, preserving the shared Repository metadata path and centralized RepoWebURLBuilder row action. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction: this is a feature PR. The changed behavior is verified through Settings repository metadata search and the table primary action, with maintainer exact-head proof on f4b9e53. Is this the best way to solve the issue? Yes. Reusing Repository, RepoAutocompleteScoring, RepoBrowserRows, and RepoWebURLBuilder is the narrow maintainable path, and the maintainer fixup moved opening to the table primary action plus context menu. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 393f19eec877. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
# Conflicts: # CHANGELOG.md
|
Maintainer fixups and verification on exact head
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Maintainer verification on exact head
Risk: low. Recommendation: land after exact-head CI is green. @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
# Conflicts: # CHANGELOG.md
|
I cool to see how you work on PRs. Very impressive! Thx for your amazing tools. I use Peekaboo (I made also a PR for that and it was merged), summarize and of course repobar (I have 450 repo's). |
|
Final maintainer verification on
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|

Summary
Enhances repository discovery in Settings with metadata-aware search and consistent browser opening.
Changes
Verification
pnpm check(SwiftFormat, SwiftLint, 607 tests across 102 suites)pnpm buildpnpm restartswiftreturned metadata matches includingopenclaw/Peekaboo, whose repository name does not contain the query.https://github.com/openclaw/Peekabooin the existing browser profile.Risk
Low. The change extends existing REST models and search paths, uses the existing host-aware URL builder, and adds regression coverage around the new behavior.