26.110.815.103()
バージョン採番体系をビルド年月日時が分かる日時スタンプ形式(YY.MMD.DHH.Build)に移行しました。あわせて NUI スクリプトの if / while における条件式評価を強化しています。
26.110.815.103 の主な変更点:
- バージョン番号体系を刷新しました。 ビルド年月日時と通算ビルド番号を組み合わせた日時スタンプ形式(
26.110.815.103)を採用し、リリースの新旧が直感的に判別できるようになりました。 - NUI 言語の条件式を強化しました。
ifやwhileコマンドにおいて、比較演算や数式を含む条件判定を直接記述できるようになりました。 - 利用規約表示の自動切り替えに対応しました。 配布パッケージの種別に応じた適切な規約内容をヘルプ画面から参照できるようにしました。
最新のアルファ版( 時点)
現在の配布版は 0.2.55.102 です。NUI 言語の変数設定コマンドとして Tcl と同じ set を利用できるようにしました。従来の set_variable も後方互換用エイリアスとして引き続きご利用いただけます。
0.2.55.102 の主な変更点:
- NUI 言語に
setコマンドを追加しました。set <name> <value>の形式で変数を設定できるようになり、Tcl との親和性が向上しました。従来のset_variableも同じ動作のエイリアスとして維持されています。
0.2.54.101 の変更です。NVDA の起動処理の安全性向上、外部ツール連携(MCP)における認証トークン解決順序の是正、同梱 SQLite の更新、およびプライバシーポリシーの公開を行いました。
0.2.54.101 の主な変更点:
- NVDA 起動時の安全性を向上させました。 Windows のシェルを経由せずに実行可能バイナリを直接起動するように切り替え、起動対象のファイルパスが正規の
nvda.exeであるかの検証を厳格化しました。 - MCP 認証トークンの解決順序を是正しました。 プロジェクト固有のシークレット(Windows 資格情報マネージャー等)を環境変数より優先して解決するように統一し、意図しないトークンの上書きを防止しました。
- 外部ツール連携(MCP)のエラー報告を改善しました。 ツール実行時の引数検証エラーを明確にエラーとして応答するようにし、外部クライアントからの連携動作を安定化させました。
- 同梱 SQLite を 3.54.0 に更新しました。
- プライバシーポリシーを公開しました。 操作ログや個人情報の外部自動送信を行わない方針と、ローカル保存や診断情報の取り扱いを明文化しました。
0.2.53.100 の変更です。NUI のコマンド置換の字句解析で、閉じ括弧の扱いを Tcl に合わせました。波括弧や引用符の中にある ] は置換の終わりとして数えません。
0.2.53.100 の主な変更点:
- コマンド置換の中の
]の扱いを直しました。 波括弧で囲んだ語の中にある]を、置換の終わりと誤認していました。cmd [list {]}] ; nextのような行が「閉じ波括弧の後に余分な文字がある」というエラーになっていた問題です。引用符の中の]も同じように扱うようにしました。Tcl の規則どおり、波括弧の中と引用符の中はどちらも置換の区切りにならない領域です。 - 引用符の中のコマンド置換を、1 つのまとまりとして読むようにしました。 引用符で囲んだ語の中に
[...]があり、その中にさらに"がある場合、内側の引用符で語が終わったと誤認していました。cmd "a[list "]"]b" ; nextのような行がエラーになっていた問題です。語の区切りとコマンド置換の区切りを、同じ規則で判定するようにしました。
0.2.52.99 の変更です。バグ報告用の診断情報を、利用者の操作で書き出せるようにしました。あわせて、NUI の字句解析を Tcl に合わせて修正し、実行ログの伏字の抜けを塞いでいます。
0.2.52.99 の主な変更点:
- 診断情報を書き出せるようにしました。 不具合の問い合わせ時に、利用者自身の操作で「診断情報を書き出す」を実行すると、OS・バージョン・NVDA の接続状態・直近のエラーと実行記録を 1 つのテキストファイルにまとめます。自動送信は一切行いません。保存したファイルを開いて中身を確認してから、メールやフォーム等お好みの経路でお送りください。CLI からは
nuime diagnosticsでも作成できます。API キーや認証情報は、登録済みの値・形から判定した値・ユーザー名を含むパスの 3 段で伏せます。 - 会話ログの伏字の抜けを塞ぎました。 実行ログのツール呼び出しと LLM の往復は伏字の対象でしたが、会話の要約ファイルには本文がそのまま残っていました。同じ内容が隣のファイルで伏字・こちらで平文、という食い違いを解消しました。画面に表示される本文は変わりません。
- NUI の字句解析を Tcl に合わせました。 2 点を修正しました。(1) コマンド置換
[...]の中の;でコマンドが分割されていた問題。cmd [list a;b] ; nextが 3 つに分かれていましたが、Tcl と同じく 2 つになります。(2) 波括弧{...}の中のバックスラッシュの扱いと、閉じ括弧の直後に余分な文字が続く場合の検査。従来は片方向に緩く、片方向に厳しすぎました。 - MCP で別プロジェクトの実行記録を読めないようにしました。 複数プロジェクトで同じ記録データベースを共有する構成のため、ターン識別子を知っていれば別プロジェクトのプロンプト本文と応答が読める状態でした。取得時にもプロジェクトを照合するようにしました。
- MCP の接続ポリシー設定が無視されていた問題を直しました。
mcp.http.policyに既定値以外を書いた場合、これまでは黙って無視されていました。現在は未対応の値を起動時にエラーとして知らせます。設定したのに効いていない、という誤認を防ぐためです。
0.2.51.98 の変更です。MCP の認証で、URL のクエリ文字列にトークンを載せる方法を既定で無効にしました。あわせて、ツール呼び出しの引数を実行ログに残す際にも、秘密の伏字を適用するようにしました。
0.2.51.98 の主な変更点:
- クエリ文字列のトークンを既定で無効にしました。
?token=...や?api_key=...の形で MCP に接続していた場合、401 になります。URL に秘密が載ると、アクセスログ・ブラウザの履歴・Referer ヘッダ・プロキシのキャッシュに残るためです。次のいずれかで移行してください。(1)Authorization: Bearer <token>ヘッダに移す(推奨)。(2)nuiproject.yamlにmcp.http.allowQueryToken: trueを追加する(従来の URL がそのまま使えます)。クエリ文字列で接続しようとした場合は、401 の応答本文に移行方法を表示します。 - ツール呼び出しの引数も伏字の対象にしました。 これまで実行ログは結果だけを伏字にし、ツール呼び出しの引数はそのまま記録していました。引数にはプロンプト本文などが入りうるため、結果と同じ規則で伏せるようにしました。
0.2.50.97 の変更です。ヘルプメニューからアンケートを開く際に事前確認・説明ダイアログを挟むようにし、意図しない外部ブラウザの起動を防ぐアクセシビリティ改善を行いました。
0.2.50.97 の主な変更点:
- ヘルプメニューからのアンケート案内画面の改善: デスクトップ画面の「ヘルプ」メニューから「アンケートに協力する...」を選択した際に、いきなり外部ブラウザを開くのではなく、目的・所要時間(2〜3分)・URLコピーリンク等を備えた案内ダイアログを表示するように改善しました。誤操作防止のため「閉じる」を初期フォーカスおよび既定ボタン(Enter/Esc)としています。
0.2.49.96 の変更です。製品改善のためのアンケート案内機能(起動時ダイアログ・ヘルプメニュー常設・CLI 対応)を追加しました。
0.2.48.95 の変更です。NUI 条件式での論理積(&&)および論理和(||)演算子のサポート、エージェントのプログラム自己修復機能の強化、NVDA 音声設定リング操作および安全な再起動手順の追加など、自動化スクリプトの柔軟性とエージェントの自立性を向上させました。
0.2.47.94 の変更です。トレース画面をはじめ各主要画面のアクション行において、ボタン・チェックボックス・ラベルの上下中央揃えと均一な余白(8px)を統一し、レイアウトの視覚的整一性を改善しました。
0.2.44.91 の変更です。Nuime Desktop の再起動時に前回の会話セッションを自動的にチャット画面へ復元して対話を継続できるようにしたほか、履歴画面から過去のセッションを再開する機能を追加し、セッション復元処理の信頼性を向上しました。
0.2.42.89 の変更です。ユーザーからの指示変更時にアシスタントが既存プランの制約から柔軟に抜け出せるよう、プランのキャンセルツール(cancel_agent_plan)を新設し、新プラン作成時の上書き(cancel_active)に対応しました。
0.2.41.88 の変更です。DeepSeek-V4 などのビジョンモデルに対応したほか、Windows 文字認識(OCR)および画像認識ツールをアシスタントから常に利用できるように改善しました。あわせて、1 ターンあたりのツール呼び出し上限を緩和し、NVDA の音通知環境におけるフォーカスモード切り替え判定の不具合を修正しました。
0.2.40.87 の変更です。Mac の Parallels Desktop 共有フォルダ(C:\Mac\Home\...)配下にプロジェクトを置いたときにエージェントからプログラムやスキルの読み書きができなくなる不具合を修正したほか、チャットへの画像添付時の既定動作とデスクトップ画面のレイアウト・メニュー表示を改善しました。
Parallels Desktop 環境では C:\Mac\Home が UNC 共有(\\Mac\Home)へのシンボリックリンクになっており、リンク解決時に相対パス UNC\Mac\Home へ化けていたため、既存プログラムの読み取りが「ファイルが見つかりません」、新規保存がエラーになっていました。0.2.40.87 で UNC リンク先を正しく解決し、Mac 側の共有フォルダ上のプロジェクトでもそのままプログラムの作成・読み書きができるようになりました。
チャットに画像を添付した際、これまでは質問内容にかかわらずアクセシビリティ上の問題を診断しようとする指示が入っていました。0.2.39.86 以降ではユーザーの依頼を最優先して回答するようにし、テキストを入力せず画像だけを送った場合も「この画像の内容を日本語で説明してください」として、画面内の文字や UI 要素を中立に説明します。
デスクトップ GUI では、高 DPI 環境やモニター間の移動時に「LLM 設定」画面などの見出し・ラベルの上下が欠けたり、API キー入力行が横幅を超えて見切れたりする不具合を修正しました。また、「ヘルプ」メニューの「バージョン情報」をセパレーター付きの最下部に移動し、内蔵 MCP サーバーのルート案内ページの説明を Streamable HTTP 仕様に合わせて更新しました。
0.2.38.85 の変更です。NUI プログラムで行をまたいで書けるようになりました。長い行を折り返せますし、複数行にまたがる { } の値も書けます。
1 つ目は\ + 改行の継続です。set_variable a\ の次の行に b と書くと a b になります。Tcl と同じく、行末の \ が奇数個なら継続し、\ を落として次の行の先頭空白を捨て、空白 1 個で繋ぎます。ブロックの本体(if の中など)でも効きます。
2 つ目は閉じていない { } の継続です。set_variable d { の次の行から } までが 1 つの値になります。波括弧の中の生の改行は値に残ります(Tcl と同じ)。foreach x {a b} { のようなブロックのヘッダ行は対象外で、従来どおり本体を物理行で読みます。
3 つ目はコメント行を字句として読まないことです。コマンドの先頭にある # から行末までは不透明で、# 使い方: {a b の { がブロックを開くことはありません。これが無いと、コメント行が次の行を飲み込んで黙って実行されなくなるため、リリース前に塞ぎました。
残っている制限: ブロックの構造判定は依然として物理行単位です(ヘッダ行を除外することで成立しています)。Tcl のように「ブロックをコマンドの入れ子として解析する」にはパーサの中核を書き換える必要があり、これは未着手です。
互換性の注意: 行末に \ を書いていたプログラムは、次の行が引数として繋がるようになります。これまではエラー(trailing '\' at end of word)だったので、意図せず行末に \ があった場合は値が変わります。行末の \ を literal として使いたい場合は \\ と 2 つ書いてください。
0.2.36.83 の変更です。NUI プログラムで画面の文字を読んで、その位置を押せるようになりました。dict のキーに変数を使えるようになり、set_variable k 4 に対して [dict get $d $k left] と書けます(Tcl と同じく $k を展開してからキーにします)。あわせて foreach がリストを Tcl のリスト規則で分けるようになりました。{text aa} {text bb} が 2 要素になるので、OCR が返す行の辞書を 1 行ずつ取り出して走査できます。
この 2 つで、座標を台本に埋め込まなくてよくなりました。OCR の結果から目当てのボタンを名前で探し、その矩形から画面座標を計算できます。ウィンドウを動かしても、HUD の有無で表示位置が 144px ずれても、スクロール位置が変わっても、実行時に吸収します。
0.2.35.82 の変更です。expr の置換の中に dict get を入れ子で書いたときに validate だけが失敗する不具合を修正しました。実行はできるのに検証で落ちるため、原因が分かりにくい形で出ていました。検証時も式の形を保つようにしています。
0.2.35.82 の変更です。NUI プログラムで文字列を組み立てて座標を取り出せるようになりました。コマンド置換 [command ...] を追加し、set_variable y [dict get $boxes lines 3 top] のように書けます。OCR の boxes は dict 形式でも返せるようになり、dict get / keys / size で行ごとの矩形を取り出せます。expr も置換で使えるので、set_variable x [expr {[dict get $boxes lines 3 left] + 10}] と 1 行で書けます。あわせて foreach の本体で代入した変数がループ終了後に失われる不具合を修正しました。Tcl と同じく結果が残ります。
MCP の ensure_elements_list_open が browser / url、get_last_speech が skip_mode_announcements を受け取れるようになりました(レジストリが宣言していたのに渡っていなかった引数)。ensure_browser_focus は URL 入力後にアドレスバーの内容を照合し、一致しなければ上限付きでやり直すようにしました。再生完了待ちから PlaySync を外したため、停止が即座に効きます。CLI の nuime run --timeout が実行側へ渡っていなかった問題を修正し、ヘルプにも記載しました。長いプログラムが既定の 60 秒で打ち切られることがなくなります。while の中で読み上げが連続して空になった場合をストールとして検出するようにし、無限に待ち続けないようにしました。ブラウザの URL 入力では、貼り付け前に control+a を送るようにしました。NVDA のテンキー numpadDivide / numpadMultiply の向きを修正し、実際に動いていない移動を ok と報告しないようにしました。read_mouse_position_text は read_object_under_mouse_text に改名しました(旧名は NUI から使えなくなります)。
移行が必要です。 MCP 認証は nuime secret set mcp_http_auth か mcp.http.allowAnonymous: true、リレーは nuime nvda config での再設定が必要です。手順は 移行ガイド(0.2.26) を参照してください。
インストール済みの方は App Installer の自動更新で更新されます。