summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-08-16release: prepare version 0.5.0tanaka takashi
Document the project as a lightweight personal Ollama Web UI that runs directly on the host OS without Docker or a virtual machine, and align the English and Japanese highlights. Add a Keep a Changelog-style history and record the clipboard fallback, final tool-round disabling, packaging metadata compatibility, and runtime asset inclusion fixes delivered in v0.5.0. Synchronize the package and runtime version at 0.5.0, remove duplicate setuptools license metadata, and explicitly include templates, static assets, translations, prompts, and bundled fonts in built distributions. Validated with 115 tests, Ruff, mypy, uv lock checking, sdist/wheel builds, and wheel-installed application initialization.
2026-08-16fix(llm): 上限到達後のツール呼び出しを無効化tanaka takashi
ツールラウンド上限到達後の最終回答生成でも effective_tools を渡していたため、コメント上の「ツールなしで最終回答」と実際のリクエストが一致していなかった。モデルが最終段階で再び tool_calls を生成できる状態も残っていた。 非ストリーミング版とストリーミング版の最終Ollama呼び出しを tools=[] に変更する。通常ラウンドでは従来どおり標準ツールとMCPツールを公開し、上限到達後だけ既存のツール結果から回答をまとめるようにする。 標準ツールとMCPツールの回帰テストを追加し、通常ラウンドにはツール定義が渡ること、最終呼び出しでは空になること、ツール実行・上限通知・最終delta・doneイベントが維持されることを検証した。全115テスト、Ruff、mypy、および実モデルによるWeb検索と複数回スクレイピングの確認を完了している。
2026-08-16fix(ui): コピー失敗時のエラーハンドリングを追加tanaka takashi
Clipboard API が利用できない非セキュアコンテキストや、ブラウザの権限拒否で writeText が失敗した場合に、未処理例外となってコピーボタンが無反応に見える問題を修正。 navigator.clipboard.writeText の存在を事前に確認し、非同期処理を try/catch で囲むことで同期例外と Promise の拒否をまとめて処理する。成功時はチェックマーク、失敗時は警告マークを一時表示し、詳細はコンソールへ記録する。アラートは表示しない。
2026-08-02version0.4.5tanaka takashi
2026-08-02fix(tools): search_and_fetch のページングトークン破損バグを修正tanaka takashi
## 背景 search_and_fetch の next_token / continue_from によるページング継続が PDF 形式で間欠的に失敗するバグが報告された。発生エラー: 1. payload is not valid JSON: Expecting ':' delimiter 2. 'utf-8' codec can't decode byte 0xda in position 278 1ページ目の取得自体は成功し、next_token 返却まで正常だが、 next_token を continue_from に渡した2ページ目でエラーが発生。 txt/md/csv/json では安定動作し、PDF で間欠的・再現性なし。 ## 根本原因 コード精査の結果、報告の「非UTF-8バイト混入」仮説に対し、より有力な 主因として「トークン巨大化による末尾欠損」を特定: - _render_file_page() は matched 配列(title/href/body 全部入り)を トークンに埋め込んでいたが、レンダリングで使うのは title と href のみ。body(DuckDuckGo のスニペット、PDF 論文要約で数KB)は未使用 - 候補複数件でトークンが数KB〜十数KBに膨張 - LLM が continue_from にコピーする際、コンテキスト長や _trim_tool_result の切り詰めでトークン末尾が欠損 - base64 デコード結果が不正になり JSONDecodeError(JSON途中切断) と UnicodeDecodeError(マルチバイト境界切断)の両エラーが発生 - PDF で間欠的・再現性なしは、検索結果セットごとにスニペット長が 変動しトークンサイズが破損閾値を前後するためと説明がつく 補助要因: make_token() の ensure_ascii=False が、末尾欠損時に マルチバイト文字境界で切れる確率を上げていた。 ## 修正内容(案A: ユーザー承認済み) 1. pagination.py の make_token() を ensure_ascii=True 化 - トークンを純ASCII化し、末尾欠損でも UnicodeDecodeError を防止 - 非ASCII文字は \uXXXX エスケープ(6バイト固定)で安定化 2. fetch.py に _slim_matched() ヘルパーを追加 - matched から body を除外し title+href のみ埋め込み - 3箇所の make_token 呼び出し(fetch失敗時・ファイル内継続時・ 次ファイル移行時)を matched=_slim_matched(matched) に変更 - トークンサイズを数KB〜十数KB → 数百バイトに削減 3. トークン形式バージョン v は 1維持(構造不変・後方互換) - 旧トークン(body入り・ensure_ascii=False)も parse_token で 正常デコード可能 - 再検索回避機能も維持 ## テスト tests/test_tools.py に新規テスト5件を追加: - test_make_token_ensure_ascii_true - test_search_and_fetch_token_excludes_body - test_search_and_fetch_token_size_reduced - test_search_and_fetch_continue_with_slim_token - test_search_and_fetch_pagination_with_nonascii_title ## 検証結果 - pytest: 113 passed (新規5件含む、既存回帰なし) - ruff check src/ tests/: All checks passed - mypy src/: Success: no issues found in 30 source files ## ドキュメント docs/tools-schema.md に実装ベースの差分を反映: - make_token() の説明に ensure_ascii=True 化の旨を追記 - search_and_fetch 処理フローの注記に _slim_matched() による body 除外とトークンサイズ削減の旨を追記 - トークンペイロード構造の matched 例から body を削除
2026-08-02scrape_url / pdf_to_text / search_and_fetch ↵tanaka takashi
はページング(継続トークン方式)に対応 mypy 6エラー修正
2026-07-09ollama側のレスポンスが空の場合に1回リトライする処理に ↵tanaka takashi
変更 トークン数の累積計算処理削除
2026-07-09READMEの英訳版作成tanaka takashi
2026-07-09トークン消費量のリングゲージの表示タイミング調整tanaka takashi
2026-07-09停止ボタンの不具合修正(停止ボタンを押すと送信できな ↵tanaka takashi
くなるバグを修正) LLMがメッセージ生成途上で画面スクロールしにくい問題を修正 チャットメッセージバルーンをコピペ対応 トークン消費量をリングゲージで可視化(表示タイミングに不具合あり)
2026-06-28モデル名によってthinkingトグルがグレーアウトする不具å� ↵tanaka takashi
ˆを修正 モデル名にスラッシュが含まれている場合にStarlette側でエスケープされる問題を回避
2026-06-28システムプロンプトへローカルタイムの現在時刻を注入ã ↵tanaka takashi
�™るように変更
2026-06-27Readme画像差し替えtanaka takashi
2026-06-27Ollama設定の詳細プレースホルダーを修正tanaka takashi
2026-06-27一般設定の追加(UI/Ollama設定) settings.jsonに設定を保存 ↵tanaka takashi
UIから言語設定対応 Ollama設定でシステムプロンプト, temperature, コンテキスト長などのパラメータを設定可能
2026-06-27CSPによるインラインJavascriptの実行ブロックの不具合を修 ↵tanaka takashi
正。
2026-06-27マルチ言語対応。MCP設定画面の言語切り替え表示にバグã ↵tanaka takashi
�‚り
2026-06-27Potential fix for code scanning alert no. 1: Client-side URL redirectたかし
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-06-27レンダー処理の最適化。markdownのHTMLレンダーを最後に一æ ↵tanaka takashi
‹¬に処理するように変更。
2026-06-27MCP toolsの名称による実行制限処理の削除。tanaka takashi
2026-06-27キャプチャー画像サイズ調整tanaka takashi
2026-06-27READMEのスクショをキャプチャーのgifに差し替えtanaka takashi
2026-06-27MCP server機能のセキュア化によるcwdの不整合を除去。tanaka takashi
2026-06-27MCP server機能をセキュア化tanaka takashi
2026-06-26MCP機能追加tanaka takashi
2026-06-25レスポンシブデザインのヘッダーレイアウト崩れ修正tanaka takashi
2026-06-25各モデルの機能を取得するように修正。thinking, tools, ↵tanaka takashi
vision対応モデルに応じて機能を変えるように変更。クリアボタンのバグを修正
2026-06-25READMEにスクショ追加tanaka takashi
2026-06-25ドキュメント最新化tanaka takashi
2026-06-24README更新tanaka takashi
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
2026-06-23First Commit.tanaka takashi