feat(app,server): add pull request pane to the workspace sidebar

Introduce a PR tab in the explorer sidebar that shows status checks,
reviews, and the merged timeline for the current branch's pull
request. Extend checkout PR status with number, draft flag, repo
identity, and per-check workflow/duration; add a new
pull_request_timeline request/response pair backed by a GraphQL
query; enrich the workspace git snapshot to carry the fields through
to the client; and extend the checkout-git-actions store so timeline
queries are invalidated alongside status when mutations land.
This commit is contained in:
Mohamed Boudra
2026-04-19 14:26:52 +07:00
parent 6a36db9924
commit e373c33108
27 changed files with 4583 additions and 174 deletions
+19
View File
@@ -117,6 +117,23 @@ const darkDiffColors = {
diffDeletion: "#ef4444", // red-500
};
// Status colors — semantic signals for success/danger/warning/merged. Used by
// check statuses, PR states, and review decisions. Kept a step darker than the
// raw palette so they read as signals, not neon.
const lightStatusColors = {
statusSuccess: "#15803d", // green-700
statusDanger: "#b91c1c", // red-700
statusWarning: "#d97706", // amber-600
statusMerged: "#7c3aed", // purple-600
};
const darkStatusColors = {
statusSuccess: "#16a34a", // green-600
statusDanger: "#dc2626", // red-600
statusWarning: "#f59e0b", // amber-500
statusMerged: "#9333ea", // purple-600
};
// Semantic color tokens - Layer-based system
const lightSemanticColors = {
// Surfaces (layers) - shifted one step lighter
@@ -167,6 +184,7 @@ const lightSemanticColors = {
ring: "#18181b",
...lightDiffColors,
...lightStatusColors,
terminal: {
background: "#ffffff",
@@ -278,6 +296,7 @@ function buildDarkSemanticColors(tint: DarkThemeConfig) {
ring: "#d4d4d8",
...darkDiffColors,
...darkStatusColors,
terminal: {
background: tint.surface0,