You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(projects): GitHub repo link on cards + compact list view (#20)
GitHub octocat button on each card/list row for repos with a github.com
remote — clicking opens the repo page. The renderer passes only the project
path (project:openRepo); main re-reads + validates the remote (https +
github.com) before shell.openExternal, leaving the external-URL allowlist
untouched so a compromised renderer can't open an arbitrary URL.
Plus a cards/list view toggle in the projects toolbar (persisted): a dense
one-line-per-project list for scanning many projects fast.
- gitParse.ts: parseRemoteUrl (scp/https/ssh github forms -> browsable URL)
- gitInfo.ts: remote.origin.url -> GitInfo.repoUrl + getRepoUrl() helper
- externalUrl.ts: isSafeRepoUrl (https github.com, defense-in-depth)
- types/projects: repoUrl threaded into the view model
- ipc project:openRepo (path-guarded) + settings:setViewMode; store viewMode
- projectsView: octocat button, makeMenuWrap shared by card+row, makeRow,
view toggle; i18n proj.open_github/view_cards/view_list
- tests +10 (172 total); Playwright QA 0 console/page errors
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments