23 KiB
OpenTerminal 更新履歴
v1.0.21 - 2026-10-07
背景画像の体験
- ライトテーマでの「白飛び」を解消:背景画像設定後、不透明度を下げるとどのテーマでも画像が暗くなります(以前はライトテーマで不透明度を下げると画像が白く洗われ、文字が読めなくなっていました)。
- 文字の自動提亮:画像モードでは端末の文字コントラストが WCAG AA レベルに引き上げられ、ライトテーマの暗い文字も壁紙の上で読みやすくなります。
- 「背景の減光」スライダー追加(設定 → テーマ):画像の上に独立した減光レイヤーを重ね、彩度を保ったまま全体を暗くします。明るい画像は 30–50% が目安です。
- 背景画像の既定の不透明度を 60% から 30% に変更しました。
パフォーマンス
- 設定の書き込みですべての端末ペインがオプション再設定とリフィットを行わなくなりました(フィールド単位の購読で、関連ペインのみ反応)。
- SFTP ファイルリストの仮想スクロール:数万件のディレクトリ(node_modules など)でもウィンドウが固まりません。
- ペインのクラッシュがワークスペース全体を巻き込まなくなりました:パネルごとのエラーバウンダリ + 再試行ボタン。
- SSH ボトムパネルのドラッグが滑らかに。転送パネルと監視グラフの描画コストも大幅に削減。
インストーラサイズ
- インストーラを約 90MB 削減(同梱依存 98MB → 8.1MB):UI 専用パッケージの二重同梱を解消しました。
セキュリティ強化
- SFTP のアップロード/ダウンロードと ZMODEM 送受信のローカルパスは、システムダイアログで選択した場所のみ受け付け、不正なパスの読み書きを遮断します。
- SSH 秘密鍵ファイルの検証を追加(≤1MB の通常ファイルのみ)。
- ウィンドウのセキュリティ設定を明示固定(contextIsolation / nodeIntegration / webSecurity)。既定値への依存をやめました。
安定性の修正
- ZMODEM:書き込みエラーで転送を正しく終了、進捗イベントを間引き、セッション detach 時に終了イベントを補完。
- 接続/コマンド設定ファイルが壊れた場合、旧ファイルをバックアップしてから再作成し、設定を黙って失いません。
- レイアウトテンプレート適用失敗時に元のレイアウトを復元。ロック中に後から出たポップアップも正しく無効化。
- 公開チャンネルのダウングレード防止(古いバージョンで上書きしない)と sha512 による資産検証。
- SFTP の各操作にタイムアウトを追加し、半死のチャンネルは自動で一度だけ再試行。
- 起動シーケンスとホスト鍵検証を複数箇所強化。
その他
- 端末タブの自動番号タイトル(「ターミナル 3」など)が UI 言語の切り替えに追従するようになりました。
- ロックショートカット Ctrl+L を物理キー位置で判定し、Dvorak など非 QWERTY 配列でも正しく動作します。
- 設定ページから機能していない「更新チャンネル」ドロップダウンを削除しました。
v1.0.20 - 2026-10-01
入力メソッド修正
- 中国語 IME の候補ウィンドウがカーソルに追従しない問題を修正:ターミナルで中国語を入力する際(特に Kimi Code や Claude Code など高頻度で再描画される TUI では)、候補ウィンドウがカーソルから大きく離れた位置に表示されていましたが、カーソルのすぐそばに表示されるようになりました。同梱のターミナルコンポーネントを、上流の IME 修正を含むバージョンに更新しました。
ロック画面の強化
- ロック中はアプリケーションメニューを除去:Alt キーで表示されるメニューの「再読み込み / 開発者ツール / ズーム」はマウスクリックでキー拦截を回避できたため、ロック中はメニュー全体を外し、ロック解除後に自動復元します。
- Ctrl+L 即時ロックのキー判定を独立モジュールに切り出し、29 件のテストケースを追加して回帰を防止。
- グローバル表示/非表示ショートカットの録画面で Ctrl+L を予約済みとして使用不可にし、OS レベルでのグローバル登録が緊急ロックを黙って無効化しないようにしました。
- 修正:システム休止やウィンドウフォーカス喪失後、ロック画面のパスワード入力クールダウンが実際の期限を超えて続き、入力可能になるまでの時間が不必要に長くなることがあった問題。
v1.0.19 - 2026-09-28
アップデート機構の変更
- 更新元を GitHub 優先に変更:更新チェックはまず GitHub releases を使い(システムプロキシに追随)、20 秒の接続プローブ付き——プロキシが無い、または GitHub に届かない場合は待たされず、国内更新チャンネル(常時直连)へ自動でフォールバックします。
- GitHub releases でインストーラー同梱を再開(exe + blockmap + latest.yml)。国内チャンネルと同じ内容です。
ターミナルハイライト:性能と互換性
- エンジン高速化:色シーケンスをコンパイル時に事前計算(span ごとの hex 解析を廃止)、span 確定を線形スキャンからソート済み挿入(二分探索)へ、エスケープを含まないテキスト洪水(大きなファイルの cat 等)では再スキャンをスキップ。200KB 負荷の実測:マッチ密集シーンで約 19–56%、プレーンテキストのストリームで約 54% 高速化。出力は旧版とバイト単位で同一です。
- エスケープシーケンスのカバー拡大:DCS/APC/PM/SOS(tmux パススルー、sixel、kitty グラフィクス)と DEC 単一文字シーケンス(カーソル保存/復帰など)を認識し、これらの場面で同じ行の通常テキストがハイライトを失わなくなりました。
ハイライト設定ページの修正
- 「分類でグループ化」ビューが実際に分類ごとにまとまるように(以前は優先度ソートで打散されていました)。
- ルールエディターに「基本ルール」スイッチを追加:自作ルールを「基本のみ」モードの有効セットに加えられます。
- プロファイルエディターで一部のルールだけを選んだ場合、含まれないルールの一覧を表示。
- 「現在のルールを置き換える」インポートに確認ダイアログを追加し、ダイアログを開くたびに「追加」モードへ戻るように。
- その他の小さな修正:連続トグルで変更が失われる問題、値バンド行がしきい値順にならない問題、背景色クリア後にカラー欄が残る問題など。
v1.0.18 - 2026-09-24
- v1.0.17 の重大なリグレッションを修正:ロック画面でパスワードを入力できない。v1.0.17 ではロック中、レンダラー側ですべてのキーボード入力を握りつぶしていました(ズーム/再読み込みのショートカットを無効化する意図でした)。しかしキー入力の既定動作は「フォーカスされたフィールドへの文字挿入」であり、その結果、ロック画面のパスワード欄に何も入力できず、ロック解除もできなくなっていました。
- ショートカットの無効化はすべてメインプロセス(
before-input-event)に移し、再読み込み/開発者ツール/ズームの組み合わせだけを対象にしました。通常の入力には影響しません。 - ロック用ショートカット Ctrl+L を新設:アプリ内のどこでも(ターミナル内を含む)押すとすぐロックします。ロックパスワード未設定のときはこの組み合わせを奪いません(shell の Ctrl+L クリアはそのまま使えます)。
- v1.0.17 でロックされたままの方の復旧手順:アプリを完全に終了 →
%APPDATA%\OpenTerminal\lock.jsonを削除 → 再起動(ロックデータがなければロック画面は出ません)。その後、本バージョンに更新してロックパスワードを再設定してください。
v1.0.17 - 2026-09-24
-
設定 → ロック を新設:ロック画面のパスワードを設定・変更・削除できます(このマシンにのみ保存、scrypt 一方向ハッシュ。平文なし・アカウント体系なし)
-
3 つのロック方法:今すぐロック、システムが一定時間アイドルで自動ロック(1/5/15/30/60 分、既定はオフ)、起動時にロック
-
ロック中は完全に不透明なマスクでウィンドウを覆い、裏で動くターミナルセッションは切断されません。ロック解除すると元の状態に戻ります
-
誤入力には段階的なクールダウン(1 秒→30 秒)で総当たりを防止します
-
アプリを終了して再起動してもロックは維持されます。トレイ終了・タスクマネージャー強制終了・クラッシュでも回避できません
-
ロック中は Ctrl+R / F5 の再読み込み・開発者ツール・ズームのショートカットを無効化し、マスクの裏のセッションを誤って終了させないようにします
-
パスワードを忘れた場合の復元はできません。このマシンの
%APPDATA%\OpenTerminal\lock.jsonを削除して再設定する以外に方法はありません -
パッケージ版は
ELECTRON_RENDERER_URL/OT_UPDATE_URL環境変数を無視するようにしました(アプリや更新チャネルを悪意あるアドレスへ向ける注入経路を遮断) -
レンダラーの preload を再びサンドボックス化
-
known_hosts が読み取れない/壊れている場合は接続を拒否し、ファイルの修復または削除を求めます(固定済みフィンガープリントの全消去を防ぐため)
-
接続時のパスワード/パスフレーズ入力をブックマークの認証方式と統一(鍵/エージェント認証のブックマークでパスワードダイアログが出たり、残った保存済みパスワードが送られたりしない)
-
SSH 接続が異常切断されたときのセッション終了通知の欠落・重複を修正(ターミナルが「接続中」のまま固まるのを防ぐ)
-
分割ペインのシステムモニターで、片方を閉じてももう片方の監視が止まらないようにしました
-
セッションログのインデックスにパス検証を追加し、改ざされたインデックスがログディレクトリの外へ書き込むのを防止
-
設定の保存をアトミック書き込みに変更し、Windows でファイルが占有されている場合にリトライします
-
CI(GitHub Actions)を追加:型チェック + 10 個のオフラインテスト + ビルド
-
ウィンドウをトレイに隠している間、凍結検出ログがタイマー絞り込みを約 1 分の「フリーズ」と誤報告しないようにしました
v1.0.16 - 2026-09-23
-
内蔵ルール 11 件 → 22 件:危険/破壊的なコマンド(
rm -rf、mkfs、dd if=、chmod 777、drop database、shへのパイプなど)、疑わしいシークレット/トークンの警告、削除/移動/上書き操作、作成操作、ログレベル、終了コード、HTTP ステータスコード、処理時間(ミリ秒)、パーセント進捗、ネットワークと IP アドレス、日時、root@プロンプト、Shell キーワード、引用文字列、環境変数などを追加 -
ステータス語を 3 色に色分け、大文字小文字を区別しない:成功(
Success/Succeeded/Successfully/good/done/OK/✓)、警告(Warning/Caution/Deprecated/⚠)、エラーと致命的(Error/NG/err/bug/fail/FATAL/CRITICAL/PANIC/✗) -
not ok/not foundは正しくエラーとして表示され、成功の緑に誤って染まらない -
数値帯による色分け:パーセントは 20% 未満が赤、20–50% が黄、50–80% が薄い緑、80% 以上が緑。終了コード・HTTP ステータスコード・処理時間も同様に数値帯で色分け
-
ハイライトモードの 3 段階:すべて / 基本(エラー・成功・警告・危険コマンド・シークレットなど主要ルールのみ、コストは全体の約 1/4)/ オフ(コストゼロ)
-
ルールごとに「大文字小文字を無視」「数値帯」のスイッチを用意。エディタ内でテストテキストによるリアルタイムプレビューが可能
-
ルールを JSON としてインポート/エクスポートでき、チームで同じ配色を共有できる
-
ホスト別ルールセット:ルールのサブセットに名前を付けて保存し、SSH 接続の編集画面で特定ホストにバインド可能(デフォルトはオフ、未バインドのホストは全ルールを実行)
-
ヒット数/処理時間の統計:セッションごとのルール別ヒット数とスキャン時間(デフォルトはオフ、オフ時はコストゼロ)
-
テーマに追従するハイライト色:ルールの色を現在のテーマのパレットにマッピング(デフォルトはオフ)
-
ハイライト設定ページにカテゴリ列(安全 / 状態 / ファイル / ネットワーク / テキスト / 数値)を追加し、カテゴリ別のグループ表示に対応
-
狭いウィンドウでハイライト設定ツールバーのラベルが縦書きになり、ボタンが右寄せされない問題を修正
-
ハイライトプリセットの回帰テストを追加(語境界、大文字小文字フラグ、否定語、数値帯、インポート/エクスポート、チャンクストリーム)。
npm test全件パス
v1.0.15 - 2026-09-20
-
ターミナルの背景画像をカスタマイズ:設定 → テーマ → 背景画像で、任意のローカル画像をターミナルの背景に指定でき、画像の不透明度(10%~100%)も調整可能。画像を削除すると単色背景に戻ります
-
テーマエディターの名前重複警告:新規作成・編集時に内蔵テーマや他のテーマと名前が重複すると黄色のヒントを表示(保存は可能)
-
テーマエディターのシードカラーを自動正規化し、無効なカラー値がカスタムテーマに入らないように
-
破損したカスタムテーマのカラーはデフォルト色に自動修復され、警告ログを記録
-
設定ダイアログ左側ナビの選択中項目の文字を白色に変更し、未選択項目と同じコントラストに(濃い背景で青い文字が見えにくい問題を修正)
-
背景画像・不透明度などの新規コントロールと4言語(簡体字/繁体字/英語/日本語)の文言を同時リリース
-
レンダラーとメインプロセスにフリーズ時間の検出ログを追加し、「応答なし」問題の今後の診断に役立てます
v1.0.14 - 2026-09-20
-
約 250KB を超えるアップロードファイルが静かに破損する問題を修正(サイズは正しいのに内容のバイトが乱れる)
-
ダウンロードのたびにリモートのファイルハンドルが漏出し、転送のたびに SFTP チャネルが残る問題を修正。サーバーのプロトコル異常でアプリ全体が落ちることもなくなりました
-
同名ファイルへのアップロードは上書き確認を表示。複数ファイル削除の部分失敗も正しく報告されます
-
権限エディタの修正:不明なモードのファイルに誤って
chmod 000を送らない。空の GID が新しい UID で置き換えられない。setuid / setgid / sticky ビットを表示・保持 -
chmod / chown にタイムアウトを追加し、遠端の無応答で永久にスピンしなくなりました
-
SSH 出力の日本語・中文が文字化けする問題を修正(ネットワークパケットをまたいで分割されたマルチバイト文字)
-
Tab 補完を確定した後にコマンド履歴が失われる・壊れる問題を修正
-
Ctrl+U / Ctrl+W などの編集キーがコマンド履歴に書き込まれる問題を修正(「2 つのコマンドが連結される」症状)
-
cd ~/ディレクトリやcd $HOME/...が正しく記憶され、新しいターミナルで復元されます -
CJK 文字を含む行内のリンクのクリック範囲がずれない。極端に小さいサイズをターミナルに送らない
-
SSH セッションは実際の終了コードを表示。ZMODEM のタイムアウト・エラーでターミナルやログに文字化けを流し込まない
-
セッション復元に失敗しても、その実行中のスナップショット保存が止まらなくなりました
-
モニターの CPU / ネットワーク履歴グラフがリアルタイムに再描画されます。SSH ワークスペース非表示中はポーリングを停止
-
ブロードキャスト:SSH 分割の片方を閉じてももう片方がブロードキャスト対象に残ります。チェックを外しても他の選択をクリアしない
-
接続失敗時に実際の理由を表示。ダブルクリックで重複接続しない
-
「他を閉じる / 右側を閉じる」がタブを飛ばして閉じる問題を修正
-
言語切り替えが最初のフレームから有効。テーマ切り替え後にアクティブタブの文字色が自動で調整され、明るいテーマでも読める
-
秘密鍵パス欄の説明を「この PC 上のパス」に修正(以前はサーバー上のパスと表示され、その通り入力すると接続に失敗していました)
-
ウィンドウへのファイル ドロップによるナビゲーションを禁止。外部リンクは http(s) / ftp のみ。IPC に送信元チェックを追加
-
保存パスワードはパスワード認証のブックマークにのみ使用(鍵認証のブックマークがパスワードをフォールバック送信しない)
-
接続ブックマークやホスト指紋をアトミックに書き込み、クラッシュでデータが消えない
-
レンダラープロセスの異常終了時に、そのセッションとログを自動回収
-
破損したカスタムテーマでアプリが起動しなくなる問題を修正
-
更新チャネルの公開をアトミックに。公開中の失敗で自動更新が使えなくなることはなくなりました
v1.0.13 - 2026-09-20
-
簡体字中国語 / 繁体字中国語 / English / 日本語 に対応。設定 → システム → 表示言語 から切り替え、即時反映され保存されます
-
アプリ全体を翻訳:設定の各ページ、ワークスペース、ターミナルの右クリックメニューと検索、SSH 接続管理、ファイルパネル、システムモニター、コマンドパネル、トレイメニューと終了確認
-
antd コンポーネントの内蔵文言(空状態・ページネーションなど)も表示言語に追従
-
更新履歴はアプリに同梱され、オフラインでも表示できます(ネットワーク不要)
-
更新履歴も多言語対応:現在の表示言語で表示し、未翻訳のバージョンは簡体字中国語にフォールバック
-
「閉じるボタンの動作 = 毎回確認」が機能しない問題を修正(従来は「トレイに最小化」へ無言で書き換えられていました)
-
ハイライトルールが形式の問題で無言で破棄されなくなりました:優先度の文字列、0/1 の真偽値、前景色の欠落などは自動修復し、未知のフィールドは保持します
-
設定の解析警告を
settings-warnings.logに記録し、設定異常を追跡可能にしました -
ターミナル右上のツールバーを設定可能に(設定 → 描画と動作):作業ディレクトリを開く(既定で有効)、セッションログの記録、ログフォルダを開く
-
「作業ディレクトリを開く」:ターミナルの現在のフォルダをエクスプローラーで開きます(
cdに追従) -
グローバル表示ショートカットをキー録音式に変更:入力欄をクリックして組み合わせキーを押すだけ。Esc でキャンセル、Backspace で消去。修飾キーまたはファンクションキーが必要で、通常の文字入力を奪いません
-
「入力候補」「コマンド履歴の記録」は既定でオフ(既存インストールは一度だけリセットされ、以後の手動設定は上書きされません)
-
設定ダイアログの内容欄がスクロールしない問題を修正(antd v6 のコンテナクラス名変更による)。テーマページの二重スクロールバーも解消
-
UI 調整:描画モードと言語のボタンを連結セグメント化し、選択時の文字コントラストを修正
リリース時に scripts/sync-changelog.cjs が RELEASE_NOTES.ja.md をこのファイルへ
マージします。内容はアプリに同梱され、「情報」タブは現在の表示言語の更新履歴を
表示します(未翻訳のバージョンは簡体字中国語にフォールバック)。
v1.0.12 - 2026-09-20
ライトテーマのコントラスト修正
- タブバーとサイドバーの色をテーマ背景の明度から算出するように変更:ライトテーマではタブバーがターミナルと同じ色味になり(濁ったグレーの帯が解消)、ダークテーマの見た目は変わりません
- ライトテーマでタブが濃いブロック+白文字になっていた問題を修正:タブの背景と文字をテーマ変数から取得し、非アクティブタブは淡色背景+濃い文字、アクティブタブの文字は自動的に濃くなります
- 設定ダイアログ全体をライトテーマに対応:フォント/ハイライト/テーマ各ページのラベル・説明・表・パレットの文字がテーマの前景色に追従し、明るい背景でも読みやすくなりました
安定性
- セッションログの書き込みをファイル単位のバッファ + 単一の書き込みループに変更:大量出力時はまとめて書き込まれ、順序も保証され、書き込み回数に応じて無限に溜まることはなくなりました
- 設定の保存を直列化:トレイからの終了動作の変更と設定画面からの保存が同時でも上書きして更新を失わなくなりました