mirror of
https://github.com/github/awesome-copilot.git
synced 2026-08-26 18:45:12 +00:00
* Add Git Worktree Explorer canvas Add an interactive repository, worktree, branch, and commit graph with GitHub PR enrichment, safe inspection actions, and shared lane visualization. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 69dd5824-7094-4b82-8cfa-83c2fbe53307 * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Address review feedback for Git Worktree Explorer Security - Quote copied shell commands (git -C / git log) with shell-safe single quoting and --end-of-options via new public/shell-quote.mjs - Move repository path into the untrusted data block of the commit Ask Copilot prompt Performance - Compute branch divergence with a single `git for-each-ref %(ahead-behind:...)` query (Git 2.41+), falling back to rev-list with bounded concurrency (8) instead of one process per branch - Drop the unused `git show --stat` summary from commit details Correctness - Only attach same-repository pull requests to local branches (filter isCrossRepository / headRepositoryOwner) - Resolve the default branch by full name or upstream instead of a suffix match (server + client) - Preserve already-loaded commit pages when a load-more request fails; only reset requests show the error state - Size the lane graph from the widest row (lanes + branch badges + text) and collapse >3 branch tips into a "+N more" badge Accessibility / UX - Add aria-pressed to view toggles and graph nodes; replace the unimplemented ARIA tree with group/button semantics - preventDefault on Space/Enter for branch badges so keyboard activation does not scroll - Use a lane palette that meets 3:1 contrast in both light and dark themes (tested) - Mobile inspector no longer auto-opens on snapshot load and gains a close button Tests: 19 -> 29 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 18350039-5e2b-40f0-b537-bc22cabcbb1b * Migrate git-worktree-explorer to plugins/ manifest layout Move the manifest from extensions/git-worktree-explorer/.github/plugin/plugin.json to plugins/git-worktree-explorer/plugin.json with README and copilot-extension.json, matching the extensions-container migration (#2334). Regenerated marketplace.json and docs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 18350039-5e2b-40f0-b537-bc22cabcbb1b * Address follow-up review: shell-specific quoting and sibling row controls - quoteShellArg/formatShellCommand take a target shell; PowerShell doubles apostrophes while POSIX uses '\\''. app.js detects the platform and reports which syntax was copied. - Commit rows no longer nest branch badge buttons inside the row button; the row button and badges are sibling controls. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 18350039-5e2b-40f0-b537-bc22cabcbb1b * Make the closed mobile inspector inert and restore focus to the graph When the inspector overlay is dismissed on narrow viewports it is now marked inert/aria-hidden so its controls leave the tab order and accessibility tree, focus returns to the selected graph control, Escape closes it, and viewport changes re-sync the state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 18350039-5e2b-40f0-b537-bc22cabcbb1b --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Aaron Powell <me@aaron-powell.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Copilot-Session: 69dd5824-7094-4b82-8cfa-83c2fbe53307 Copilot-Session: 18350039-5e2b-40f0-b537-bc22cabcbb1b
59 lines
2.3 KiB
HTML
59 lines
2.3 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>Git Worktree Explorer</title>
|
||
<link rel="stylesheet" href="/styles.css" />
|
||
</head>
|
||
<body>
|
||
<header class="app-header">
|
||
<div class="title-block">
|
||
<span class="mark" aria-hidden="true">⌘</span>
|
||
<div>
|
||
<h1>Git Worktree Explorer</h1>
|
||
<p id="repo-path">Loading repository…</p>
|
||
</div>
|
||
</div>
|
||
<div class="header-actions">
|
||
<span id="github-status" class="status-pill">Local Git</span>
|
||
<button id="refresh-button" class="icon-button" type="button" title="Refresh repository" aria-label="Refresh repository">↻</button>
|
||
</div>
|
||
</header>
|
||
|
||
<nav id="breadcrumbs" class="breadcrumbs" aria-label="Topology breadcrumbs"></nav>
|
||
|
||
<main class="workspace">
|
||
<section class="graph-panel" aria-label="Git repository topology">
|
||
<div class="graph-toolbar" aria-label="Graph controls">
|
||
<button id="view-worktrees" class="view-button active" type="button" aria-pressed="true">Worktrees</button>
|
||
<button id="view-branches" class="view-button" type="button" aria-pressed="false">Branches</button>
|
||
<span class="toolbar-divider" aria-hidden="true"></span>
|
||
<button id="zoom-out" type="button" aria-label="Zoom out">−</button>
|
||
<button id="zoom-reset" type="button">100%</button>
|
||
<button id="zoom-in" type="button" aria-label="Zoom in">+</button>
|
||
</div>
|
||
<div id="loading" class="loading">
|
||
<span class="spinner" aria-hidden="true"></span>
|
||
<span>Reading worktrees and branches…</span>
|
||
</div>
|
||
<div id="empty-state" class="empty-state" hidden></div>
|
||
<div id="graph-scroll" class="graph-scroll">
|
||
<svg id="graph" role="group" aria-label="Git topology graph"></svg>
|
||
</div>
|
||
</section>
|
||
|
||
<aside id="inspector" class="inspector" aria-live="polite">
|
||
<div class="inspector-empty">
|
||
<span class="inspector-icon" aria-hidden="true">⌁</span>
|
||
<h2>Select a node</h2>
|
||
<p>Details and safe actions appear here.</p>
|
||
</div>
|
||
</aside>
|
||
</main>
|
||
|
||
<div id="toast" class="toast" role="status" aria-live="polite"></div>
|
||
<script type="module" src="/app.js"></script>
|
||
</body>
|
||
</html>
|