CodeNomad/docs/help/ja/extensions.md
Pascal André c0d53f13d4
docs(help): multilingual help site with in-app Help menu and palette entry (#859)
## Summary

A complete public CodeNomad help site in the app's ten languages,
published on GitHub Pages (https://neuralnomadsai.github.io/CodeNomad/)
and opened from the app.

- **Content:** 25 pages in 8 sections (Start, Workflows, OpenCode setup,
Remote access, Customize, Extensions, Desktop, Help), written for
OpenCode power users and covering the current version only. It includes
everything user-relevant from `README.md`, `packages/server/README.md`
(server, network, auth, TLS, Remote Control) and the user-facing
dev-docs, with flags, defaults, labels and safety boundaries checked
against source.
- **Languages:** en, fr, de, es, he (RTL), ja, ne, ru, tr, zh-Hans.
Interface labels reuse each locale's own app strings; native desktop
menu names, code, commands, flags, paths and anchors stay unchanged.
- **Site:** `scripts/build-help.mjs` renders
`docs/help/<locale>/<slug>.md` with translated chrome
(`docs/help/i18n/`), stable `{#id}` anchors identical across locales,
same-article language links with hreflang, a root language chooser, and
a first-party offline per-locale search (Ctrl/⌘+K, substring matching
for CJK, Devanagari and Hebrew, hidden without JS). No analytics or
remote resources.
- **Validation:** `npm run test:help` fails on any missing page or
string, heading drift, broken link/anchor/asset or invalid search
target. `.github/workflows/help-pages.yml` validates PRs and deploys
only from `dev`.
- **App entry points:** one `open-help` command for the palette and a
new **CodeNomad Help** item at the top of the Electron and Tauri Help
menus. It opens the help in the invoking window's UI language through
the existing external opener, falls back to the root URL for windows
without the handler, and reports failures without replay.
- Documents the strict boolean environment-variable rule from #959 and
the updater entry points from #960.

## Review

Delivered as a CodeNomad mission with independent review loops, each to
zero findings:
- English content audit (5 passes, 14 fixes) and technical gatekeeper (2
passes) before translation.
- After translation: QA, UX review, and a final multilingual gatekeeper
(35 translation/label findings fixed, then verified), plus a visual fix
for the search focus ring and a verified sync with #960.

## Validation

- `npm run test:help`: 9/9 (25 pages × 10 locales, strict, including
negative tests); `npm run build:help`: 250 pages.
- `node scripts/test-help-browser.mjs`: 44/44; Playwright: 500 page
visits at 390 and 1280 px, all locales, no overflow, no external
requests.
- UI help-command and desktop-updates browser tests 19/19; help URL unit
tests; Electron menu tests; UI and Electron typechecks; Tauri `cargo
test` 272/272.
2026-10-14 22:44:56 +02:00

7.7 KiB
Raw Permalink Blame History

パネル拡張機能

インストール済み・オンラインの拡張機能を探す

  1. 右パネルのタブバーで 右パネルをカスタマイズ を開きます。
  2. 区切り線の下の 拡張機能 を展開します。
  3. 拡張機能を検索 で、インストール済みアドオンと公式オンラインカタログをまとめた単一の一覧を検索します。項目にカーソルを合わせるかフォーカスするとメタデータを確認できます。

開閉セクションは、カスタマイズのポップアップを開くたびに折りたたまれています。インストール済みとオンラインの項目は拡張機能 ID でまとめられ、別の管理ウィンドウやインストール済み/オンラインのモードはありません。カタログのメタデータを閲覧しても、作者のパネルコードのダウンロードや実行はしません。カタログは CodeNomad Extensions で管理されています。掲載や申告された作者名は、署名や信頼の証明ではありません。

カタログが利用できなくても、インストール済み拡張機能と ZIP からインストール… は利用できます。更新して検出を再試行してください。ポップアップを折りたたむ/閉じると、保留中の確認 UI は破棄されます。無断でインストールすることはありません。

確認して無効のままインストールする

  1. カタログ項目の インストール…、または別途入手したパッケージの ZIP からインストール… を選びます。
  2. パッケージ ID、作者、リポジトリ、バージョン、API/権限、SHA-256 ダイジェストを確認します。必要なら技術詳細を展開します。
  3. 発行者を確認し、可能なら信頼できる経路でダイジェストを比較します。
  4. コードを信頼する場合にのみ、このパッケージと作者を信頼します を選び、無効のままインストール を選びます。

検査では、選択したパッケージをダウンロード/再検証しますが、作者のコードは実行しません。ダイジェストは正確なバイト列を識別するもので、作者の身元を示すものではありません。カタログパッケージは、任意の URL ではなく、正確に宣言された GitHub リリース資産から取得します。手動パッケージは manifest.json と自己完結型の panel.html だけを含む ZIP です。不正/未対応のパッケージは拒否されます。

インストールに OpenCode の再起動は不要で、自動的に有効化を許可することもありません。検証失敗、競合、ストレージ操作の失敗は、異なるバイト列での再試行を許可しません。新たにインストールを試みる前に、パッケージを再検査してください。

有効化と適用範囲を理解する

  1. 右パネルをカスタマイズ の 拡張機能 セクションより上にあるアドオン行に戻ります。インストール済みで無効のアドオンも、この一覧に残ります。
  2. チェックボックスを選んで有効化します。同じチェックボックスを外すと無効になります。

そのチェックボックスが唯一の有効化コントロールです。追加の管理スイッチや、ウィンドウごとの表示ゲートはありません。有効化はフォルダー単位ではなく、設定を使う全プロジェクトに適用されます。リモート接続では、閲覧端末だけでなくサーバーのインストール済み拡張機能ストアに影響します。

拡張機能ストアは、選択した CodeNomad 設定の隣の panel-extensions/ です。別のデスクトップデータプロファイルでも、同じ設定ディレクトリを使う場合、拡張機能は分離 されません。逆に、別の設定を開くことは、他所にインストールしたアドオンの実行許可ではありません。違いはデスクトップのウィンドウとデータを参照してください。

有効なパネルは選択時にマウントされ、非表示で一時的な UI 状態を破棄する場合があります。無効化は実行許可を取り消します。カスタマイズの リセット は組み込みレイアウトだけを復元し、拡張機能の有効化、無効化、アンインストールはしません。

置き換え・削除する

  1. バージョンを変更…、または同じ ID の別 ZIP の検査で、インストール済みパッケージを置き換えます。
  2. 新しいダイジェストと権限を確認し、信頼を認めてから、無効のままインストールします。
  3. 置き換え版を信頼すると判断してから、通常のチェックボックスで再有効化します。
  4. アンインストールには、対象を確認して 削除… と 削除を確認 を使用します。

置き換えは毎回、権限一覧が同じでも、全プロジェクトの有効化を取り消します。検証/競合/ストレージの失敗では、インストール済みパッケージを保持します。無断の拡張機能更新はありません。削除はパッケージと有効化設定を消しますが、OpenCode セッションやプロジェクトファイルは消しません。望ましくないコードから復旧するには、先に無効化し、確認済みの信頼できるパッケージだけを再インストールしてください。

コンテキスト、資産への同意、サンドボックスの制限

契約 有効化で許可するもの
API 1 / session.context 現在のセッション識別子(またはなし)、UI 言語、外観。会話テキストやファイルシステムアクセスはありません。
API 2 / session.assets.read とコンテキスト 明示的に確認した許可により、現在のセッションのツール結果画像/添付のメタデータを範囲を限定して一覧し、対応する埋め込みバイト列を読み取れます。一般的な会話、ファイル、URL へのアクセスではありません。

資産へのアクセスは、作者が選んだセッションではなく、現在マウントされたホスト/セッションに従います。ローカル/リモート参照は利用不可として一覧される場合があり、資産 API は任意のリモート URL を取得したりローカルファイルを開いたりしません。セッション切り替え、切断、同意の取り消しで古いアクセスは無効になります。

作者のコードは、信頼されたアプリケーションレンダラーではなく、制限された iframe 内で実行します。ネイティブ/OpenCode ブリッジ、認証情報アクセス、汎用 RPC、フォーム、ポップアップ、ダウンロードは与えられず、ネットワーク API と外部リソースも制限されます。拡張機能は UI のアドオンであり、OpenCode プラグインではありません。

サンドボックスはプロセス/CPU の隔離ではなく、承認したコードが無害だという保証でもありません。悪意のある拡張機能はレンダラーを妨害できます。信頼する作者だけをインストールし、秘密情報を渡さず、予期しない動作をしたら無効化/削除してください。