summaryrefslogtreecommitdiff
path: root/src/ollama_web/static/app.js
AgeCommit message (Collapse)Author
2026-09-13fix(ui): スマホでセッションを削除できるようにするtanaka takashi
セッション削除ボタンが通常時はdisplay:noneで、li:hover時だけ表示されていたため、持続的なhoverを持たないスマートフォンでは安定して操作できなかった。モバイル幅、hover非対応、coarse pointer環境ではボタンを常時表示し、44x44pxのタップ領域とtouch-actionを設定する。 表示修正後もタップ後の処理がネイティブwindow.confirmと複数のclickリスナーに依存していたため、削除とセッション選択をsession-list上の単一イベント委譲へ統合する。削除ボタンを先に判定して行選択とサイドバー閉鎖へ伝播しないようにした。 ネイティブ確認ダイアログを既存modalスタイルに沿ったアプリ内確認ダイアログへ置き換える。キャンセル、背景タップ、Escape、フォーカス復帰に対応し、DELETE実行中の二重送信を防止する。通信失敗はネイティブalertではなくダイアログ内のaria-live領域へ表示する。 削除ボタンへbutton typeとaria-labelを明示し、確認ダイアログへdialog semanticsと日英のキャンセル文言を追加する。CHANGELOGと、タッチ向けCSSのカスケード順・サイズ・ネイティブconfirm非依存を確認する回帰テストも更新する。 Validation: 150 tests passed; ruff check passed; node --check src/ollama_web/static/app.js passed; git diff --check passed.
2026-09-13feat(multimedia): MCP画像・音声artifactの安全な表示経路を追加tanaka takashi
MCP Tool結果をテキストと型付きartifactへ分離し、画像・音声のbase64をMIME、サイズ、件数のallowlistで検証する。annotations.audienceを反映し、ユーザー向けartifactだけをセッションへ保存してSSEにはメタデータのみを公開する。 画像はvision capabilityが明示されたモデルだけへ渡し、非対応時は既存の多言語プロンプト機構による固定通知へ置き換える。MCP生成音声とユーザー添付音声はOllamaへ送らず、誤デコードしたテキストやbase64がモデル入力へ混入しないポリシーに統一する。 保存メディア用の認証済み同一オリジン配信ルートを追加し、セッションスコープ、MIME allowlist、nosniff、private/no-store、Rangeリクエストを適用する。UIはMCP由来HTMLを使わずDOM APIでimgとaudio controlsを生成し、CSPへmedia-src selfを追加する。 web_searchは文字列メタデータだけを返す既存仕様を維持する。scrape_urlとsearch_and_fetchは画像・音声・動画レスポンスを拒否し、search_and_fetchの対象拡張子を明示的allowlistへ変更して標準Webツールをテキスト専用の契約に揃える。 責務境界と導入しない過剰対策をdocs/multimedia.mdへ記録し、README、ツール仕様、CHANGELOGを更新する。MCP artifact変換・永続化、vision分岐、音声非送信、認証、Range配信、MIME偽装拒否をテストで追加確認した。 Validation: 148 tests passed; ruff check passed; mypy src passed; node --check src/ollama_web/static/app.js passed.
2026-08-16fix(ui): コピー失敗時のエラーハンドリングを追加tanaka takashi
Clipboard API が利用できない非セキュアコンテキストや、ブラウザの権限拒否で writeText が失敗した場合に、未処理例外となってコピーボタンが無反応に見える問題を修正。 navigator.clipboard.writeText の存在を事前に確認し、非同期処理を try/catch で囲むことで同期例外と Promise の拒否をまとめて処理する。成功時はチェックマーク、失敗時は警告マークを一時表示し、詳細はコンソールへ記録する。アラートは表示しない。
2026-07-09ollama側のレスポンスが空の場合に1回リトライする処理に ↵tanaka takashi
変更 トークン数の累積計算処理削除
2026-07-09トークン消費量のリングゲージの表示タイミング調整tanaka takashi
2026-07-09停止ボタンの不具合修正(停止ボタンを押すと送信できな ↵tanaka takashi
くなるバグを修正) LLMがメッセージ生成途上で画面スクロールしにくい問題を修正 チャットメッセージバルーンをコピペ対応 トークン消費量をリングゲージで可視化(表示タイミングに不具合あり)
2026-06-27マルチ言語対応。MCP設定画面の言語切り替え表示にバグã ↵tanaka takashi
�‚り
2026-06-27レンダー処理の最適化。markdownのHTMLレンダーを最後に一æ ↵tanaka takashi
‹¬に処理するように変更。
2026-06-26MCP機能追加tanaka takashi
2026-06-25各モデルの機能を取得するように修正。thinking, tools, ↵tanaka takashi
vision対応モデルに応じて機能を変えるように変更。クリアボタンのバグを修正
2026-06-24Harden web UI securitytanaka takashi
2026-06-24数式の出力に対応tanaka takashi
2026-06-24Web検索などのツール呼び出しによる応答不能を回避tanaka takashi
2026-06-24vision対応モデル向けに添付画像の処理を変更tanaka takashi
2026-06-24レスポンシブデザイン対応tanaka takashi
2026-06-24機能追加(セッション、左ペインでのセッション管理、フ ↵tanaka takashi
ァイル取得ツール、pdfテキスト化ツール)
2026-06-23ストリーミング出力対応tanaka takashi
ツール呼び出し、thinkingが応答欄の枠外にでる不具合修正
2026-06-23基本機能実装tanaka takashi