Repository navigation
Releases: armaniacs/jushoai
Releases · armaniacs/jushoai
Release list
v0.1.19
Added
- プレビューのプロファイル/住所セレクトに可視ラベルを付け、スクリーンリーダーにも伝わる標識にする
- ダイアログにフォーカストラップと
aria-modalを付け、Tab が背後のページに抜けないようにする - プロファイル値の欠落欄を
warn-no-valueで理由付き表示し、分類失敗との区別が付くようにする - トラブルシューティング(日英)に同意ゲート拒否時の対処を追記する
Fixed
- LLM が使えないときに低信頼度のルール分類まで消える問題を修正し、元の分類を保持してルールのみで動作を続ける
- LLM フォールバック経路で性別・年代以外の radio が誤分類・注入される問題を修正し、後段フィルタで制限する
- 住所ブロックが複数あるフォームで届け先の
addressFullが不完全値に絞り込まれる問題を修正し、nearby 単位で判定する - 分割不一致の電話・郵便番号欄に完全値が複製注入される問題を修正し、残存群を unknown 化する
GENDER正規表現のsexが部分一致で誤確定する問題を修正し、単語境界付きにする- オフライン時に fetch と DNS 解決を試みて電池を消費する問題を修正し、即座にルール継続する
- ポップアップの見出し「入力内容の確認」を実態に合わせて「登録内容の確認」に直す
- 部分適用の通知が4秒で消えて適用漏れを見逃す問題を修正し、要確認の残存表示にする
- 保存失敗時の権限ロールバックが既存の許可まで剥がす問題を修正し、今回付与分だけに戻す
- 鍵ストアの一時的失敗を認証失敗に誤分類する問題を修正し、別語彙で区別表示する
- フィードバック報告の題名に完全なホスト名が入る問題を修正し、eTLD+1 またはハッシュ化した表示にする
- フォームボタンとバッジの click ハンドラに
isTrusted検査を付け、合成イベントで発火しないようにする - ユーザ向け文書と実装の食い違いを直す(ポップアップ見出し、監査ログの URL 範囲、プレビュー注記一覧、部分適用通知の永続表示、AI 無効の説明)
Changed
- 分類パスの NFKC 正規化を入口に集約し、同一文字列の重複正規化をなくす
- AI 失敗文言の二重所有を
src/ai/failure-text.tsの単一対応表に集約する - 空ラベル群の unknown 化と見出しなし複数ブロックの絞り込み制限を仕様として固定し、回帰テストで保護する
- ボタンなしパネルでも Tab を嚥下し Esc で閉じられることをテストで保護する
Security
- 監査ログと TSV 輸出のページ URL を origin のみに最小化し、パス内トークンの保持・流出をなくす
- 送信境界の唯一形状(
MetaWire)と fill 専用値の分離を定義・送信側のコメントとテストで固定する
v0.1.18
Added
- 自動入力の適用結果を数えられるようにし、一部または全部が適用できなかったときはボタンに「一部のみ適用(x/y件)」と表示する。入力済みスキップなど正常な見送りでは警告しない
- バッジのエラー表示をスクリーンリーダーに読み上げる(通常の状態表示では読み上げない)
- 設定画面の接続テストボタンに連打防止のクールダウン(約3秒)を付け、クールダウン中は残り時間を表示する
- パネルを開いたときの対話名と初期フォーカスを明示し、主操作に焦点が当たるようにする
- OpenAI 互換 API の設定欄に「信頼できるプロバイダの URL のみ入力してください」の注意書きを追加する
Fixed
- 注意書き(「最後までお読みください」「作成してください」など)の文言で漢字氏名欄がカナ欄に誤認される問題を修正する。legend 側の短い読みは除外し、欄自身の語彙は維持する
- 適用時に1欄の例外で残りの欄まで処理が止まる問題を修正し、欄単位で結果を分けて報告する。計画後に差し替えられたラジオ選択肢には成功を返さない
- 適用結果と選択保存の順序を入れ替え(注入→保存)、適用の成否を表示判断に渡す。AI 失敗の案内と部分適用の通知が互いに消し合わないように合成する
- 設定保存の失敗時の巻き戻しが、既存の許可まで剥がさないようにする。巻き戻しに失敗したときは警告を残す
- 保存済み鍵が読めない(破損した)ときは沈黙で終わらず、認証失敗として表示・応答する
- 一時的な認証失敗(401)で分類が止まり続ける問題を修正し、一定時間後に自動で再試行する。応答が壊れていた場合に互換モードへ恒久固定しない
pattern属性も走査時に 200 文字で切り詰める(label・placeholder と同じ上限に揃える)
Changed
- 充填結果の語彙・集計・警告判定を outcome 側に集約し、適用報告を fieldId 対応で返す
- カナ語彙をトークン表1つ+用途別2述語に一本化する
- パネルの対話名と初期フォーカスを呼出側の引数で指定する
- 認証失敗の記憶を期限付きの小モジュールに切り出す
- 分割欄の補正方針を表駆動化し、除外した欄の理由を追跡できるようにする
- 設定保存を計画・許可要求・確定の段階に分け、順序を型で強制し、巻き戻し有無を結果に含める
- ドキュメントサイトのガイドに、接続テストのクールダウン、信頼できるベース URL の注意、部分適用の通知の説明を追加する
Security
- egress 検査と実際の送信で名前解決がすり替わる余地(check-to-use の隙間)を文書化し、検査直前実行の隣接を保つ。根本排除は fetch API に IP 固定手段がないため不可で、信頼できる URL のみ設定する運用で補う
v0.1.17
Added
- タグ push を起点に Chrome・Edge・Firefox の 3 ストアへ自動で審査提出する(
npx wxt submit)。審査通過後は自動公開する。提出に失敗したときは GitHub Release を作らずに失敗する - ストア自動提出の運用ガイドを
docs/store-submit.mdに追加する
Fixed
- AMO 審査用の sources.zip に VulnHunter の残骸(使い捨てテスト鍵を含む)と promo 画像が混入していたため、除外リストに追加する
v0.1.16
Added
- 設定ページに「起動しないURL」を追加する。登録した文字列で始まる URL では、ボタンの表示だけでなくフォームの走査と監視も行わない。登録した URL を開いたままでも、保存すると反映される(ボタンが消える)。一致は前置一致で、大文字小文字は区別しない
v0.1.15
Fixed
- ボタンの位置が、ページのスクロールだけでなく内部スクロール容器(ステップ式フォームやモーダルのように
overflowで中身がスクロールする領域)のスクロールにも追従するようにする。scroll はバブリングしないためwindowのリスナーでは子要素のスクロールを捕捉できず、固定配置のボタンがアンカーから外れていた。document の capture 相で受けるようにし、自前のパネル内のスクロールでは再計算しない - プレビューの承認時に、パネルの host を解決できないときは他の host で代用せず注入を中止する。従来は文書内の最初の host(通常はフォームボタンの host)に落ちるため、確認の対象が別の要素になり得た
v0.1.14
Fixed
- フォームの入力ボタンがページ左下(文書の末尾)に張り付いて表示されることがあった問題を修正する。ホスト要素のリセット(
all: initial !important)が座標の書き込みを打ち消していたため、座標も important 付きで書き込み、ビューポート基準の固定配置に統一する。あわせて、可視でない欄と面積のない欄をボタンの基準欄に選ばないようにし、スクロール・リサイズ・レイアウト変化で位置を再計算する - 監査ログの容量計上を、保存される記録全体(JSON 化した 1 件分の UTF-8 長)で測る。従来は request+response+固定値で、ページが支配する pageUrl が計上から漏れ、実バイトが予算超過のまま保存されることがあった
Changed
- 監査ログに記録するページの URL を、UTF-8 で 1024 バイトまでに制限する。それより長い URL は先頭からの接頭辞のみを記録する。ページが
history.pushStateで URL を伸ばしても、記録 1 件が無制限に大きくならない
Security
- プレビューの承認 UI を、ページの CSS による隠し替え・移動・覆いから守る。位置と重なりの critical な宣言を important 付きで設定し、適用の直前にパネルがページに接続され、可視で、承認ボタンの位置が最前面であることを検証する。検証できないときは注入を中止して理由を表示し、パネルは開いたままにしてキャンセルと再試行を可能にする
- OpenAI 互換 API の接続先を検証する DNS リゾルバ(dns.google)の host 権限を、保存時の許可要求に含める。リゾルバへの許可が一度も要求されていなかったため、解決の仕組みが実装されていても既定で働いていなかった。設定ページの保存では接続先とリゾルバの両方の許可を求め、権限の状態確認も同じ集合を使う
- 解決できない結果(リゾルバへの到達不能・空応答・タイムアウト)では、分類の呼び出しを行わず、保存も拒否する fail-closed に倒す。従来は検証をスキップした旨の警告を表示して保存を続行し、呼び出しも検証をスキップして進めていた。内部アドレスへの解決は従来どおり拒否する。解決結果は呼び出しごとに取り直し(per-call)、前の呼び出しの結果は次の呼び出しに持ち越さない
v0.1.11
Added
- Firefox 128 以上に対応する。入力の流れ(ボタン・プレビュー・注入)は Chrome / Edge と同じコードで動く。Firefox 用の zip(
jushoai-X.Y.Z-firefox.zip)と AMO 提出用のソース zip(jushoai-X.Y.Z-sources.zip)を Release に添付する - Firefox ではクラウド AI の権限を許可するとき、ホストへの通信に加えてデータ収集(
websiteContent)の同意も求める。manifest でdata_collection_permissions(必須none、任意websiteContent)を宣言する - Firefox ビルド(
make build-firefox)、manifest の検査(make test-build)、web-ext lint、実 Firefox の E2E(make e2e-firefox)
Changed
- 「JushoAI で入力」ボタンを、フォームの最初のテキスト入力欄の隣に出す。ルールで判定できない欄(AI に任せる欄)が先頭にあっても、ボタンが下の判定済みの欄まで下がらない。先頭の選択欄・ラジオには付けない
- Firefox ではブラウザ内蔵 AI(Prompt API)を選べない。保存済みの設定が内蔵 AI でも「使わない」として扱う
- 設定ページの Ollama の案内で、Firefox では
moz-extension://<UUID>を許可するよう案内する(UUID はインストールごとに変わる)
v0.1.10
Added
- 英語ページの判定(本文の日本語文字が 3% 以下でラテン文字が十分にあるページ)。英語ページでは姓名をローマ字、郵便番号・市・都道府県・番地・建物名を英語住所の項目で入力する
Fixed
- 「First name on ID (if different from above)」のような任意の別名欄を人名として分類しない
v0.1.8
Added
- AI 呼び出し(クラウド AI・ブラウザ内蔵 AI・接続テスト)の監査ログ。日時・プロバイダ・宛先・モデル・ページの URL・送った欄の数・結果を端末内に 7 日間保存する
- 設定ページ(AI 判定)に、監査ログの件数表示、TSV ダウンロード、削除を追加
- プレビューの「LLM で再分析」を「AI で分析」に改名
- 入力内容の確認ポップアップに「AI で分析」ボタン(開いているタブのフォームで分類からプレビューまでを始める)
v0.1.7
Added
- 設定ページの左メニュー化(プロファイル・住所・AI判定のページ切り替え、URLハッシュ対応)
- 左メニュー最下部の不具合報告リンク(GitHub issue起票ページを開く、値は送らない旨の注意書き付き)
- 左上のロゴからドキュメント(GitHub Pages)へのリンク
- ツールバークリックで入力内容の確認ポップアップ(保存済み一覧と使用中表示、未登録時の設定案内、右上ギアから設定画面を開く)
- 住所へのプロファイル紐付け(使うプロファイルの選択、共通住所、プロファイル切替時の住所自動選択、ポップアップでの使う人表示)
- ドキュメントサイトのガイド追加(プロファイル、住所、ツールバーとフォームへの入力、対応する入力欄、ライセンス)
- ドキュメントサイトから GitHub Issue をワンクリックで起票する導線(機能の要望、入力できなかったフォーム、不具合)と Issue フォーム
- ドキュメントサイトの英語版 404、sitemap、robots.txt、OGP メタデータ
- 英語版 README、package.json のライセンス(GPL-3.0-only)・リポジトリ情報、リリース手順(docs/release.md)