Skip to content

feat(frontend): アカウント別のTL・公開範囲ショートカット設定 - #78

Draft
mattyatea wants to merge 1 commit into
developfrom
codex/account-keyboard-shortcuts
Draft

mattyatea wants to merge 1 commit into
developfrom
codex/account-keyboard-shortcuts

Conversation

@mattyatea

@mattyatea mattyatea commented Oct 6, 2026 •

Copy link
Copy Markdown

What

  • 設定にアカウント専用のキーボードショートカット画面を追加。ホーム/ローカル/ソーシャルTLへの切り替えと、投稿フォーム内の公開範囲ピッカーを設定できます
  • 新しい割り当ては初期状態で未設定。キーの記録・変更・解除を即時反映し、既存の投稿/検索/ダークモード操作を維持します
  • 修飾キー必須、重複・予約キー・不正値の検証、入力欄・IME・AltGr・連打の抑止、TL利用権限チェックと公開範囲ピッカーのフォーカス復帰を追加

Why

Freeskiの要望に対応します(今回の対象はTL選択と公開範囲選択)

Additional info (optional)

  • PASS: 公開head e2f1058 の全実行CIチェック(frontend unit/E2E、全lint/typecheck、production buildなど)。条件付きbuild 1件のみskip。CI結果
  • PASS: frontend全体のunit/componentテスト559件、今回の重点テスト143件(アカウント切り替え後の保存・復元、競合、記録のキャンセル、既存の公開範囲制約など)
  • PASS: frontend typecheck(NODE_OPTIONS=--max-old-space-size=6144)、frontend本番ビルド、変更ファイルESLint、SPDX、locale safety、git diff --check
  • ローカルNode v24.19.0で検証。CIはリポジトリ指定のNodeを使用
  • SKIPPED: 実ブラウザーの目視・E2E・スクリーンショット。検証環境でChromiumのsocket生成がEPERMとなるため。ピッカーのテストはreturnFocusTo受け渡しまでで、実ブラウザーのフォーカス復帰確認は含みません
  • キーは物理コードで記録。OS/ブラウザーに予約された組み合わせは動作しない場合があるため、設定画面に案内を表示
  • CHANGELOG候補: アカウントごとにTL切り替えと投稿の公開範囲選択のショートカットを設定できるように

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown

🖥 Frontend Diagnostics Report

(No significant changes)

View details

Requests by resource type
Type Requests Encoded bytes
Base Head Δ Base Head Δ
Document 2 2 0 34 KB 34 KB 0 B
Script 151 151 0 2.4 MB 2.4 MB $\color{orange}{\text{+5.3 KB}}$
Stylesheet 63 63 0 320 KB 320 KB $\color{orange}{\text{+82 B}}$
Fetch 28 28 0 47 KB 47 KB 0 B
Image 9 9 0 238 KB 238 KB 0 B
Font 2 2 0 129 KB 129 KB $\color{orange}{\text{+352 B}}$
Other 9 9 0 421 KB 421 KB $\color{green}{\text{-99 B}}$
V8 heap snapshot statistics
Metric @ Base @ Head Δ MAD
$\color{gray}{\rule{8pt}{8pt}}$ Total 12 MB
± 203 B
12 MB
± 19 KB
$\text{+22 KB}$
$\text{+0.2\%}$
19 KB
$\color{orange}{\rule{8pt}{8pt}}$ Code 3 MB 3 MB $\text{+3.2 KB}$ 1.3 KB
$\color{red}{\rule{8pt}{8pt}}$ Strings 1.3 MB 1.3 MB $\text{+904 B}$ 168 B
$\color{cyan}{\rule{8pt}{8pt}}$ JS arrays 121 KB 121 KB $\text{+176 B}$ 0 B
$\color{green}{\rule{8pt}{8pt}}$ Typed arrays 0 B 0 B 0 B 0 B
$\color{yellow}{\rule{8pt}{8pt}}$ System objects 0 B 0 B 0 B 0 B
$\color{violet}{\rule{8pt}{8pt}}$ Other JS objs 2.1 MB 2.1 MB $\text{+1.3 KB}$ 300 B
$\color{pink}{\rule{8pt}{8pt}}$ Other non-JS objs 5.4 MB 5.5 MB $\text{+16 KB}$ 24 KB

Download representative heap snapshot: base / head

📦 Bundle Stats

Chunk size diff (58 updated, 1 added, 0 removed)
Chunk Base Head Δ Δ (%)
(total) 6.1 MB 6.1 MB $\color{orange}{\text{+7.1 KB}}$ $\color{orange}{\text{+0.1\%}}$
src/pages/settings/keyboard-shortcuts.vue ja-JP/ApN71grM0-CgyTsELY.js
0 B 4.3 KB $\color{orange}{\text{+4.3 KB}}$ $\color{orange}{\text{( + )}}$
src/_boot_.ts ja-JP/qUNnBsuSE-B2EcPxbV.js → ja-JP/ApN71grM0-DlWcoJNj.js
71 KB 72 KB $\text{+370 B}$ $\color{orange}{\text{+0.5\%}}$
src/pages/settings/index.vue ja-JP/qUNnBsuSE-T6DQGiLi.js → ja-JP/ApN71grM0-fqdkvjqc.js
6.7 KB 6.9 KB $\text{+147 B}$ $\color{orange}{\text{+2.2\%}}$
src/components/MkVisibilityPicker.vue ja-JP/qUNnBsuSE-CQsu4Wti.js → ja-JP/ApN71grM0-CgzoSwNN.js
2.6 KB 2.7 KB $\text{+63 B}$ $\color{orange}{\text{+2.4\%}}$
search-index:settings ja-JP/qUNnBsuSE-DtAAwDJi.js → ja-JP/ApN71grM0-wTPYJHPs.js
34 KB 34 KB $\text{+10 B}$ $\text{+0\%}$
src/pages/admin-user.vue ja-JP/qUNnBsuSE-CL03YYM6.js → ja-JP/ApN71grM0-AwCwH5OQ.js
18 KB 18 KB $\text{+8 B}$ $\text{+0\%}$
src/pages/admin/index.vue ja-JP/qUNnBsuSE-DTM6qCRU.js → ja-JP/ApN71grM0-BoyH6OIL.js
8.2 KB 8.2 KB $\text{+6 B}$ $\text{+0.1\%}$
src/pages/admin/users.vue ja-JP/qUNnBsuSE-CU7-qtJU.js → ja-JP/ApN71grM0-Cl6iBzdj.js
4.5 KB 4.5 KB $\text{+6 B}$ $\color{orange}{\text{+0.1\%}}$
src/pages/reversi/game.vue ja-JP/qUNnBsuSE-DwJfI67z.js → ja-JP/ApN71grM0-9D_iwJaW.js
33 KB 33 KB $\text{-6 B}$ $\text{-0\%}$
(other generated chunks) 2.3 MB 2.3 MB $\color{orange}{\text{+2.3 KB}}$ $\text{+0.1\%}$
(other) 646 KB 646 KB $\text{-26 B}$ $\text{-0\%}$
Startup chunk size (1 updated, 0 added, 0 removed)
Chunk Base Head Δ Δ (%)
(total) 941 KB 943 KB $\color{orange}{\text{+2.7 KB}}$ $\color{orange}{\text{+0.3\%}}$
src/_boot_.ts ja-JP/qUNnBsuSE-B2EcPxbV.js → ja-JP/ApN71grM0-DlWcoJNj.js
71 KB 72 KB $\text{+370 B}$ $\color{orange}{\text{+0.5\%}}$
(other generated chunks) 867 KB 869 KB $\color{orange}{\text{+2.3 KB}}$ $\color{orange}{\text{+0.3\%}}$
(other) 2.9 KB 2.9 KB 0 B 0%

Startup chunks are the Vite entry for src/_boot_.ts and its static imports.

Bundles Modules Entries Imports Size
Static Dynamic Rendered Gzip Brotli
Base 505 3,007 22 11,222 364 11 MB 3 MB 2.6 MB
Head 506 3,012 22 11,235 365 11 MB 3 MB 2.6 MB
Δ $\color{orange}{\text{+1}}$ $\color{orange}{\text{+5}}$ 0 $\color{orange}{\text{+13}}$ $\color{orange}{\text{+1}}$ $\color{orange}{\text{+11 KB}}$ $\color{orange}{\text{+3.8 KB}}$ $\color{orange}{\text{+3 KB}}$
Δ (%) $\color{orange}{\text{+0.2\%}}$ $\color{orange}{\text{+0.2\%}}$ 0% $\color{orange}{\text{+0.1\%}}$ $\color{orange}{\text{+0.3\%}}$ $\color{orange}{\text{+0.1\%}}$ $\color{orange}{\text{+0.1\%}}$ $\color{orange}{\text{+0.1\%}}$

Open treemap HTML

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant