Skip to content

upstream 取り込み PR #5: #3295 + 19 procedure architecture rework#402

Merged
MocA-Love merged 5 commits intomainfrom
upstream/batch-5-arch-rework
Apr 23, 2026
Merged

upstream 取り込み PR #5: #3295 + 19 procedure architecture rework#402
MocA-Love merged 5 commits intomainfrom
upstream/batch-5-arch-rework

Conversation

@MocA-Love
Copy link
Copy Markdown
Owner

@MocA-Love MocA-Love commented Apr 23, 2026

Summary

upstream 取り込み PR #5: Architecture rework (最大規模 PR)。upstream superset-sh#3295 の軽量化改善を取り込みつつ、fork の 19 GitHub Repository Tools tRPC procedure を専用 nested router (workspaces.githubExtended) に分離。

当初 PR #388superset-sh#3295 を revert した状態を、「案 A (分離型)」で根本解決。

取り込み内容 (4 commits)

  1. f66bfcfb6 feat(trpc): add empty github-extended router and mount under workspaces (Phase A)

    • 空の github-extended.ts router を新規作成
    • workspaces.tsrouter({ githubExtended: createGithubExtendedRouter() }) として mount
  2. 59d07a0e6 feat(trpc): move 19 GitHub extended procedures to github-extended.ts (Phase B-C)

    • 19 procedure + 専用 helper + schema を git-status.ts から github-extended.ts へ移動
    • git-status.ts: 2073 → 383 行 (83% 縮小、upstream 軽量化版に近い形)
    • github-extended.ts: 新規 1734 行 (fork 19 procedure + 専用 helper + schema)
  3. c635bc61f fix(renderer): rewire 19 GitHub extended procedures to workspaces.githubExtended.* (Phase D)

    • renderer 8 ファイル 23 箇所の tRPC 呼び出しパスを書き換え
    • 対象: RepositoryPanel, ReviewPanel, ActionLogsPane, ProjectWorktreeAutoSync, useCleanupMissingWorktrees, CheckSteps, KeepAliveWorkspaces
    • 旧パス残存ゼロ (rg で 0 件確認)
  4. 24d9bb9e0 feat(trpc): adopt upstream fix(desktop): resolve GitHub status for branch workspaces superset-sh/superset#3295 branch-workspace corrections for git-status/github/cache (Phase E)

    • getWorkspacePath(workspace) による branch workspace 対応: worktree なしの branch 型 workspace でも正しく repo path 解決
    • fetchGitHubPRStatus(worktreePath, branchName?) に optional branchName 引数追加、cache key を ${path}::${branchName} 形式に変更し branch 別 cache 保持
    • fetchGitHubPRComments({ branchName? }) 対応
    • clearGitHubCachesForWorktreeinvalidatePrefix 化して branch-scoped cache を一括無効化

19 tRPC procedure 分離対象 (全て workspaces.githubExtended.* へ移行)

cleanupMissingWorktrees, createGitHubIssue, dispatchGitHubWorkflow, getCheckJobSteps, getGitHubRepositoryOverview, getGitHubWorkflowRuns, getJobLogs, getJobStatuses, getMissingWorktrees, getPullRequestIdentityCandidates, getWorkflowRunJobs, replyToPullRequestComment, rerunPullRequestChecks, setActiveSyncWorkspace, setPullRequestDraftState, setPullRequestThreadResolution, updatePullRequestAssignees, updatePullRequestReviewers, uploadGitHubIssueAsset

保持した fork 独自機能

  • previewUrlResource, commitAuthorResource, noPullRequestMatchResource (cache.ts)
  • fetchGitHubPreviewUrl, fetchCheckJobSteps, fetchStructuredJobLogs, fetchJobStatuses (github.ts)
  • getGitHubStatus input の includePreview?: boolean (git-status.ts)
  • getWorktreeInfo, getWorktreesByProject, getExternalWorktrees procedure

取り込みを見送った点

  • upstream refreshGitHubPRStatus 内部の branch override ロジック (refs/heads/${branchName} rev-parse / upstream ref 解決): fork は resolveGitHubStatusContext / resolveAttachedPullRequest の独自 PR attachment チェック実装を使っており upstream と内部実装が大きく異なるため内部 refresh ロジックへの branch override 伝播は見送り。cache key レベルの分離のみ適用

Fork 固有機能ヘルスチェック

作業前 baseline (/tmp/pr5-baseline/fork-features.txt) と作業後を grep で照合。全 14 項目変化なし (silent regression ゼロ):

  • 19 tRPC プロシージャ全数 (github-extended.ts 配下に移動)
  • TERMINAL_OPTIONS, SUPERSET_WORKSPACE_NAME, moonshot-ai.kimi-code
  • listBranches sortOrder/pinDefault
  • 他 fork 固有機能

PR #388 からの継続性

Test plan

  • bun install 正常完了
  • bun run typecheck グリーン (27/27 task)
  • bun run lint グリーン
  • fork 固有機能 baseline 比較で regression ゼロ
  • 19 procedure が github-extended.ts 配下で健在 (grep 確認)
  • RepositoryPanel で overview 表示、issue 作成、画像 upload、workflow dispatch が動く
  • ReviewPanel で draft 切替、thread resolve/unresolve、reply、reviewer/assignee 更新、rerun checks が動く
  • ActionLogsPane で logs polling、rerun、workflow run jobs が動く
  • ProjectWorktreeAutoSync で missing worktree 検出と cleanup が動く
  • branch workspace で GitHub status / PR comments が正しく解決される (fix(desktop): resolve GitHub status for branch workspaces superset-sh/superset#3295 改善点)
  • branch workspace で cache invalidation が正しく働く (異なる branch で別 cache が分離)

次の PR

Summary by CodeRabbit

リリースノート

  • 新機能

    • GitHubワークフロー操作の機能を拡張し、プルリクエスト管理、ワークフロー実行、チェックの再実行をサポート
    • ブランチベースのワークスペースにおけるGitHub統合のサポートを改善
  • バグ修正

    • GitHubステータスキャッシュの無効化を最適化し、より正確なプレフィックスマッチングを使用

PR #5 Phase A: 空の github-extended router を新規作成し
workspaces router にネストして登録する。後続 Phase で 19 tRPC
procedure を git-status.ts から段階的に移設し、upstream superset-sh#3295
の軽量化版 git-status/github/cache を採用する準備。
PR #5 Phase B-C: fork の 19 tRPC procedure (`cleanupMissingWorktrees`,
`createGitHubIssue`, `dispatchGitHubWorkflow`, `getCheckJobSteps`,
`getGitHubRepositoryOverview`, `getGitHubWorkflowRuns`, `getJobLogs`,
`getJobStatuses`, `getMissingWorktrees`, `getPullRequestIdentityCandidates`,
`getWorkflowRunJobs`, `replyToPullRequestComment`, `rerunPullRequestChecks`,
`setActiveSyncWorkspace`, `setPullRequestDraftState`,
`setPullRequestThreadResolution`, `updatePullRequestAssignees`,
`updatePullRequestReviewers`, `uploadGitHubIssueAsset`) と専用 helper を
procedures/git-status.ts から github-extended.ts へ移動。

- git-status.ts: 2073 → 383 行 (upstream superset-sh#3295 に近い形へ)
- github-extended.ts: 新規 1734 行 (fork 19 procedure + 専用 helper + schema)
- main/server 側 typecheck: グリーン
- renderer 側 typecheck: 57 件エラー (Phase D: renderer 書き換えで解消)

`githubSyncService.initialize` のモジュールトップ呼び出しは git-status.ts
に残置、Phase E で整理する。
…hubExtended.*

renderer 側の tRPC 呼び出しパスを `workspaces.<procedure>` から
`workspaces.githubExtended.<procedure>` に書き換え、Phase B-C で
github-extended nested router に移動した 19 procedure との型整合を取る。
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

Warning

Rate limit exceeded

@MocA-Love has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 50 minutes and 29 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 50 minutes and 29 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 09bb21ac-5eac-410f-b55b-58ee1e501c47

📥 Commits

Reviewing files that changed from the base of the PR and between 24d9bb9 and 708f7e0.

📒 Files selected for processing (1)
  • apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts
📝 Walkthrough

ウォークスルー

新しいGitHub拡張ルーター(createGithubExtendedRouter)が導入され、git-status.tsから19以上のGitHubプロシージャが抽出されます。PR管理、ワークフロー実行、イシュー作成、レビュー操作をサポートしています。クライアントコンポーネントは新しいgithubExtended名前空間を参照するように更新されます。GitHub通ユーティリティはブランチワークスペース対応向けに強化されます。

変更内容

コホート / ファイル 概要
新規GitHub拡張ルーター
apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts
19以上のGitHubプロシージャを含む新規ルーターを導入。PR問い合わせ、イシュー作成、アセットアップロード、ワークフロー実行、レビュースレッド管理、ワークツリークリーンアップを処理します。
プロシージャ移行
apps/desktop/src/lib/trpc/routers/workspaces/procedures/git-status.ts
GitHub関連プロシージャを削除し、新規github-extendedルーターへ移行。ワークスペース-リポジトリパス解決を一元化し、ブランチワークスペース対応を改善します。
ユーティリティレイヤー更新
apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts, apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts
fetchGitHubPRStatusおよびfetchGitHubPRCommentsbranchNameパラメーターを追加。キャッシュ無効化をプレフィックスマッチング方式に変更します。
ルーター構成
apps/desktop/src/lib/trpc/routers/workspaces/workspaces.ts
新規githubExtendedルーターを既存ルーターに統合します。
クライアント端点更新(アクション/ログ)
apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/TabView/ActionLogsPane/ActionLogsPane.tsx, apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CheckSteps/CheckSteps.tsx
ジョブログ、ワークフロー実行、チェックステップクエリをgithubExtended名前空間に更新します。
クライアント端点更新(リポジトリ・レビュー)
apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/RepositoryPanel/RepositoryPanel.tsx, apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ReviewPanel/ReviewPanel.tsx
ワークフロー実行、リポジトリ概要、イシュー作成、ドラフト状態、スレッド解決、コメント返信をクエリをgithubExtendedへ更新します。
クライアント端点更新(ワークスペース管理)
apps/desktop/src/renderer/react-query/workspaces/useCleanupMissingWorktrees.ts, apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/KeepAliveWorkspaces.tsx, apps/desktop/src/renderer/routes/_authenticated/_dashboard/project/$projectId/components/ProjectWorktreeAutoSync/ProjectWorktreeAutoSync.tsx
ワークツリークリーンアップおよびアクティブワークスペース設定をgithubExtended名前空間に更新します。

推定コードレビュー工数

🎯 4 (複雑) | ⏱️ ~60分

関連の可能性のあるPR

ウサギの詩

🐰 GitHub手続きを整理し、
拡張ルーターへ大移動、
ブランチワークスペース対応で、
効率よく働くようになり、
キャッシュも最適化、
スムーズなレビューフロー!✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: merging upstream improvements (#3295) while restructuring 19 GitHub procedures into a dedicated nested router.
Description check ✅ Passed The description is comprehensive and well-structured, covering objectives, detailed commit breakdown, procedures moved, retained fork features, test plans, and addressing the architectural solution to the PR #388 revert.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upstream/batch-5-arch-rework

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts (1)

351-358: ⚠️ Potential issue | 🟡 Minor

invalidatePrefix(worktreePath) は別ワークツリーのキャッシュを巻き込む可能性があります。

ステータスのキャッシュキーは worktreePath 単独または ${worktreePath}::${branchName} の 2 形態で、invalidatePrefixstartsWith 一致です。パスが別のワークツリーの接頭辞になるケース(例: /x/y/proj/x/y/proj-v2)では誤爆が起きえます。確実に分離するなら exact invalidate と ${worktreePath}:: プレフィックスの 2 段で行うのが安全です。

🛡️ 提案差分
-	githubStatusResource.invalidatePrefix(worktreePath);
+	githubStatusResource.invalidate(worktreePath);
+	githubStatusResource.invalidatePrefix(`${worktreePath}::`);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts` around
lines 351 - 358, The current clearGitHubCachesForWorktree uses
githubStatusResource.invalidatePrefix(worktreePath) which can accidentally match
other worktrees whose paths start with the same prefix; change this to perform
an exact invalidate for the bare worktree key and a prefix invalidate only for
branch-scoped keys: call githubStatusResource.invalidate(worktreePath) and then
githubStatusResource.invalidatePrefix(`${worktreePath}::`) (keep
repoContextResource.invalidate(worktreePath) and recordGitHubCacheMetric as-is)
so keys like "/x/y/proj" won’t invalidate "/x/y/proj-v2".
apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts (1)

276-308: ⚠️ Potential issue | 🟠 Major

branchName パラメータがキャッシュキーのみに使用され、refresh 時に HEAD に依存したままです。

fetchGitHubPRStatus の JSDoc(行 270-275)では「branchName が提供された場合、HEAD / チェックアウト済みブランチではなく そのブランチの SHA とアップストリームを解決する」と明記されていますが、実装では次のようになっています:

  • キャッシュキー(行 280): branchName があれば ${worktreePath}::${branchName} で正しく分離
  • refresh 関数(行 210 の refreshGitHubPRStatus): branchName パラメータを受け取らない
  • resolveGitHubStatusContext(行 167): getCurrentBranch(worktreePath) で worktreePath の HEAD を使用

結果として、branch 型ワークスペース(git-status.ts:220 の fetchGitHubPRStatus(repoPath, branchOverride) 呼び出し)では、キャッシュミス / TTL 失効時に:

  1. workspace.branch = "feature-x" 用のキャッシュキーが要求される
  2. HEAD が main にチェックアウトされている場合、resolveGitHubStatusContextmain のブランチ情報で PR を解決
  3. main のブランチ情報(reviewer/checks/draft state 等)が feature-x のキャッシュキーに書き込まれる

JSDoc の約束と実装の乖離です。refreshGitHubPRStatus(worktreePath, branchName) の形で branchName を受け取り、resolveGitHubStatusContext 内で branchName ?? getCurrentBranch(...) にフォールバックさせるか、または branch 型ワークスペースではキャッシュミス時に null を返すべきです。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts` around
lines 276 - 308, The implementation only uses branchName for the cache key but
not for resolving status, causing HEAD-based refreshes to overwrite
branch-specific caches; update fetchGitHubPRStatus to call
refreshGitHubPRStatus(worktreePath, branchName) and modify
resolveGitHubStatusContext to accept an optional branchName and use branchName
?? getCurrentBranch(worktreePath) when resolving SHA/upstream; ensure
readCachedGitHubStatus/read/write paths continue to use the existing cacheKey
logic so branch-specific keys map to refreshes that use the provided branchName.
🧹 Nitpick comments (1)
apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts (1)

942-981: Map<string, string> を Set として使っています。Set<string> で十分です。

キーと値が常に同一なので実質 Set であり、加えて target.split(":") で NWO とランIDを復元するのは冗長です。組を直接保持する Set<string> + 正規化済みキーで簡素化できます(機能面での修正提案ではなく可読性向上)。

♻️ 提案差分
-	const runTargets = new Map<string, string>();
+	const runTargets = new Set<string>();
 	for (const check of checksToRerun) {
 		const runId = parseRunIdFromActionsUrl(check.url);
 		const repositoryNameWithOwner = check.url
 			? extractNwoFromUrl(check.url)
 			: null;
 		if (!runId || !repositoryNameWithOwner) {
 			continue;
 		}
-
-		runTargets.set(
-			`${repositoryNameWithOwner}:${runId}`,
-			`${repositoryNameWithOwner}:${runId}`,
-		);
+		runTargets.add(`${repositoryNameWithOwner}:${runId}`);
 	}

 	if (runTargets.size === 0) { /* ... */ }

-	for (const target of runTargets.values()) {
+	for (const target of runTargets) {
 		const [repositoryNameWithOwner, runId] = target.split(":");
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts` around lines
942 - 981, The code uses runTargets as a Map but only stores identical key/value
pairs; replace it with a Set to simplify intent: change runTargets declaration
from new Map<string,string>() to new Set<string>(), change
runTargets.set(`${repositoryNameWithOwner}:${runId}`, ...) to
runTargets.add(`${repositoryNameWithOwner}:${runId}`) in the loop that calls
parseRunIdFromActionsUrl and extractNwoFromUrl, and update the iteration to for
(const target of runTargets) (remove .values()) before calling execWithShellEnv;
keep the same split logic (target.split(":")) to obtain repositoryNameWithOwner
and runId, and retain usage of mode and repoPath when constructing the gh api
call.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts`:
- Around line 1569-1606: The loop that processes each missing worktree can leave
a workspace stuck in deleting state if an exception occurs after
markWorkspaceAsDeleting; wrap per-workspace teardown (calls to
getWorkspaceRuntimeRegistry().terminal.killByWorkspaceId,
githubSyncService.unregisterWorkspace, workspaceInitManager.clearJob,
deleteWorkspace, etc.) in a try/finally where
clearWorkspaceDeletingStatus(ws.id) is called from the finally block to
guarantee cleanup, and catch/log errors around non-critical calls
(unregisterWorkspace, clearJob, deleteWorkspace) so one failing workspace
doesn't abort the whole loop; also move the
hideProjectIfNoWorkspaces(input.projectId) call out of the for (const wt of
missing) loop and invoke it once after the loop completes.

In `@apps/desktop/src/lib/trpc/routers/workspaces/procedures/git-status.ts`:
- Around line 146-165: The refreshGitStatus call uses getAheadBehindCount({
repoPath, defaultBranch }) which passes project.defaultBranch, causing
ahead/behind to be computed against the repo default while gitStatus.branch is
set to workspace.branch; change the call in refreshGitStatus to pass
defaultBranch: workspace.branch (i.e., getAheadBehindCount({ repoPath,
defaultBranch: workspace.branch })) so the ahead/behind counts match the branch
label returned and keep the localDb.update(worktrees).set({ gitStatus })
behavior unchanged.

---

Outside diff comments:
In `@apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts`:
- Around line 351-358: The current clearGitHubCachesForWorktree uses
githubStatusResource.invalidatePrefix(worktreePath) which can accidentally match
other worktrees whose paths start with the same prefix; change this to perform
an exact invalidate for the bare worktree key and a prefix invalidate only for
branch-scoped keys: call githubStatusResource.invalidate(worktreePath) and then
githubStatusResource.invalidatePrefix(`${worktreePath}::`) (keep
repoContextResource.invalidate(worktreePath) and recordGitHubCacheMetric as-is)
so keys like "/x/y/proj" won’t invalidate "/x/y/proj-v2".

In `@apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts`:
- Around line 276-308: The implementation only uses branchName for the cache key
but not for resolving status, causing HEAD-based refreshes to overwrite
branch-specific caches; update fetchGitHubPRStatus to call
refreshGitHubPRStatus(worktreePath, branchName) and modify
resolveGitHubStatusContext to accept an optional branchName and use branchName
?? getCurrentBranch(worktreePath) when resolving SHA/upstream; ensure
readCachedGitHubStatus/read/write paths continue to use the existing cacheKey
logic so branch-specific keys map to refreshes that use the provided branchName.

---

Nitpick comments:
In `@apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts`:
- Around line 942-981: The code uses runTargets as a Map but only stores
identical key/value pairs; replace it with a Set to simplify intent: change
runTargets declaration from new Map<string,string>() to new Set<string>(),
change runTargets.set(`${repositoryNameWithOwner}:${runId}`, ...) to
runTargets.add(`${repositoryNameWithOwner}:${runId}`) in the loop that calls
parseRunIdFromActionsUrl and extractNwoFromUrl, and update the iteration to for
(const target of runTargets) (remove .values()) before calling execWithShellEnv;
keep the same split logic (target.split(":")) to obtain repositoryNameWithOwner
and runId, and retain usage of mode and repoPath when constructing the gh api
call.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 95c8466f-e935-4ac7-b597-70a1577333d8

📥 Commits

Reviewing files that changed from the base of the PR and between bc614eb and 24d9bb9.

📒 Files selected for processing (12)
  • apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts
  • apps/desktop/src/lib/trpc/routers/workspaces/procedures/git-status.ts
  • apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts
  • apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts
  • apps/desktop/src/lib/trpc/routers/workspaces/workspaces.ts
  • apps/desktop/src/renderer/react-query/workspaces/useCleanupMissingWorktrees.ts
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/KeepAliveWorkspaces.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/project/$projectId/components/ProjectWorktreeAutoSync/ProjectWorktreeAutoSync.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/TabView/ActionLogsPane/ActionLogsPane.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/RepositoryPanel/RepositoryPanel.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ReviewPanel/ReviewPanel.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ReviewPanel/components/CheckSteps/CheckSteps.tsx

Comment thread apps/desktop/src/lib/trpc/routers/workspaces/github-extended.ts
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24d9bb9e07

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/desktop/src/lib/trpc/routers/workspaces/utils/github/github.ts
Comment thread apps/desktop/src/lib/trpc/routers/workspaces/utils/github/cache.ts
Codex final review で指摘された JSDoc と実装の不整合を解消。
branchName 引数は **cache key スコープのみ** に使われ、内部の
refreshGitHubPRStatus 呼び出しには伝播しないことを明記。
完全な branch override は fork 独自の resolveGitHubStatusContext /
resolveAttachedPullRequest の rework が必要なため別 PR で対応する。
@MocA-Love MocA-Love merged commit 99cbbec into main Apr 23, 2026
6 checks passed
@github-actions
Copy link
Copy Markdown

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ⚠️ Neon database branch
  • ⚠️ Electric Fly.io app

Thank you for your contribution! 🎉

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.

1 participant