# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新 - #288

Merged
yusuke0610 merged 3 commits into
mainfrom
dev
May 29, 2026
Merged

# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新#288
yusuke0610 merged 3 commits into
mainfrom
dev

Conversation

@yusuke0610

@yusuke0610yusuke0610 commented May 29, 2026

Copy link
Copy Markdown
Owner

概要

2 つの独立した変更を含む。

  1. GitHub連携サイドバー項目の責務分離(UI 改善) — サイドバーの「GitHub連携」を、クリックで連携 API をトリガーする button から、画面遷移に徹する NavLink へ変更。連携の実行はサブパネル内の「連携実行」ボタンに分離した。
  2. ADR-0007 の方針更新 — OpenAPI → TypeScript 型生成を「導入検討(折衷案あり)」から「完全移行(手書き DTO 全廃)」方針へ書き換え。

1. GitHub連携サイドバーの責務分離

背景・課題

従来はサイドバーの「GitHub連携」項目クリックがそのまま連携 API(/api/github-link/run)をトリガーしていた。単に画面を見たいだけの遷移でも毎回連携リクエストが飛ぶため、不要なリクエストの温床になっていた。

変更内容

  • frontend/src/components/AuthenticatedLayout.tsx
    • 「GitHub連携」項目を buttontriggerGitHubLink 呼び出し)→ NavLink/github_link へ遷移のみ)に変更。
    • 連携実行は、▼ で開くサブパネル内の新規「連携実行」ボタンに移設。
    • active 判定を useLocation の手動比較から NavLinkisActive に置き換え(useLocation import 削除)。

テスト

  • frontend/e2e/github-link.spec.ts
    • 「サイドバークリックは画面遷移のみで連携 API を呼ばない」ことを検証するテストを追加(runCalled === false を assert)。
    • 「サブパネルの『連携実行』ボタンで連携が走りポーリング表示になる」ことを検証するテストへ更新。
  • frontend/e2e/navigation.spec.ts
    • GitHub連携 をボタン→リンクとして期待する形に修正。

サイドバー(ナビゲーション/レイアウト)コンポーネントの変更のため E2E を実行。

2. ADR-0007 の方針更新

OpenAPI → TypeScript 型生成について、当初の「Phase 1 パイロットの結果を見て採用判断」「FE 独自名は alias で温存する折衷案」から、手書き DTO 型を全廃し生成物へ完全移行する方針へ更新した。リリース前で呼び出し側 rename コストが低いことが判断根拠。

主な追記:

  • 命名統一マップ(FE 独自名 → BE 名)の追加。CareerResumeResponseResumeResponse 等、呼び出し側ごと BE 名へ rename する。
  • Phase 0 の前提作業を明確化:response_model 未設定エンドポイント(実測 40 中 14)の棚卸し・schema 化・付与を完全移行の前提として内包。
  • トレードオフに 入出力兼用 schema の -Input/-Output 分裂optional/required の解釈ズレ新規 schema 命名規約の論点を追加。
  • status は Proposed 据え置き(Phase 0 + Phase 1 が make ci green かつ CI ドリフト検知が機能した時点で Accepted に昇格)。

ドキュメント(ADR)のみの変更。実装は本 ADR が定義する後続 PR で行う。

確認事項

  • make ci
  • npm run test:e2e(サイドバー/ナビゲーション変更のため必須)

Summary by CodeRabbit

  • Improvements

    • GitHub integration sidebar item now functions as a navigation link to a dedicated page, separate from the integration trigger action.
    • GitHub integration execution moved to an options panel with a dedicated button.
  • Tests

    • Updated end-to-end tests to verify new navigation and integration trigger behavior.
  • Documentation

    • Updated architecture decision records documenting TypeScript code generation approach and phased implementation plan.

Review Change Stack

yusuke0610and others added 3 commits May 29, 2026 17:34
# PR: GitHub連携サイドバーの遷移/実行分離 と ADR-0007 完全移行方針への更新
@coderabbitai

coderabbitaiBot commented May 29, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d561748-4e47-43c2-b050-1f82dbe3479a

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa45e4 and 354c526.

📒 Files selected for processing (4)
  • docs/adr/0007-openapi-typescript-codegen.md
  • frontend/e2e/github-link.spec.ts
  • frontend/e2e/navigation.spec.ts
  • frontend/src/components/AuthenticatedLayout.tsx

📝 Walkthrough

Walkthrough

This PR updates ADR 0007 to document the confirmed adoption of OpenAPI→TypeScript type generation with full frontend DTO migration, specifying the Phase 0–3 roadmap and detailed risk assessment. It also refactors the GitHub連携 sidebar feature to separate navigation from API invocation: the sidebar item becomes a pure link, while the run request moves to a sub-panel button.

Changes

ADR 0007: OpenAPI TypeScript Codegen Decision

Layer / File(s)Summary
Status update and decision specification
docs/adr/0007-openapi-typescript-codegen.md
ADR status remains Proposed pending CI drift-detection criteria; documents confirmed adoption, backend schema SSoT, generated output in frontend/src/api/generated.ts, re-export layer for ergonomics, and unchanged auth/CSRF/path logic; specifies FE→BE naming unification.
Migration phases, risks, and conditions
docs/adr/0007-openapi-typescript-codegen.md
Defines Phase 0–3 structured roadmap with per-phase targets and risk levels; details Phase 0 prerequisite for response_model endpoint coverage; expands known risks (bundle size, Nix constraints, CI impact, rename scope, OpenAPI edge cases); updates future acceptance conditions.

GitHub Link Sidebar Navigation Refactoring

Layer / File(s)Summary
AuthenticatedLayout sidebar and sub-panel refactoring
frontend/src/components/AuthenticatedLayout.tsx
Removes useLocation-based pathname active-state logic; replaces "GitHub連携" sidebar trigger button with NavLink to /github_link for navigation; adds "連携実行" button in sub-panel that invokes triggerGitHubLink with options state.
E2E test updates for navigation and API trigger separation
frontend/e2e/navigation.spec.ts, frontend/e2e/github-link.spec.ts
Updates navigation test to expect "GitHub連携" as link role; adds test verifying sidebar link performs only page navigation without invoking the GitHub run API; updates polling test to trigger flow from sub-panel button instead of sidebar.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A nav link hops to GitHub's gate,
While buttons in panels now orchestrate,
ADR phases bloom, 🌱
From schemas in Pydantic's room,
Types auto-generate their fate!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the two main changes: GitHub sidebar separation of navigation and execution, plus ADR-0007 migration policy update.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@yusuke0610
yusuke0610 merged commit 176380c into mainMay 29, 2026
31 of 33 checks passed
Sign up for freeto 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

@yusuke0610