| Age | Commit message (Collapse) | Author |
|
Dependabotで報告された21件の脆弱性を解消した依存更新を、0.5.4のセキュリティパッチリリースとして確定する。
- pyproject.tomlとollama_web.__version__を0.5.4へ更新
- uv.lockのルートパッケージversionを正規のuvコマンドで同期
- CHANGELOGへ2026-09-14付けの0.5.4 Securityセクションを追加
- Pillow、pypdf、h2、hpack、cryptographyの更新内容を記録
- Unreleasedおよび0.5.4のGitHub比較リンクを更新
検証:
- GitHub Dependabot: open 0件、fixed 21件
- pytest: 150 passed
- Ruff: passed
- mypy: 30 source files passed
- JavaScript syntax check: passed
- uv lock --check --offline: passed
- source distribution and wheel build: passed
- installed wheel assets, application initialization, and /login endpoint verified
|
|
0.5.3 の公開に向けて、プロジェクトおよび実行時のバージョン情報を更新する。
- pyproject.toml と ollama_web.__version__ を 0.5.3 に更新
- uv.lock のルートパッケージバージョンを同期
- CHANGELOG に 2026-09-13 付けの 0.5.3 セクションを追加
- Unreleased と 0.5.3 の GitHub 比較リンクを更新
- MCP 画像・音声 artifact、vision 非対応モデル向け通知、モバイルのセッション削除修正をリリース対象として確定
検証:
- pytest: 150 passed
- ruff check src tests
- mypy src
- node --check src/ollama_web/static/app.js
- uv lock --check --offline
- sdist / wheel ビルドおよび wheel インストール後の起動確認
|
|
セッション削除ボタンが通常時は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.
|
|
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.
|
|
Finalize the 0.5.2 changelog for lossless PDF pagination, session-scoped attachment continuation, deduplicated fetched files, and token-only cross-conversation resume.
Synchronize the project metadata, runtime package version, and uv lock entry at 0.5.2. Refresh the exceptiongroup typing-extensions marker emitted by the current uv resolver, and move changelog comparison links to the v0.5.2 release boundary.
Validated with uv lock --check, the complete 132-test suite, Ruff, mypy for 30 source files, source and wheel builds, packaged runtime assets, and application initialization from the installed wheel.
|
|
PDF本文をページ単位で抽出した後に文字数上限で切断しつつ、継続位置だけ次ページへ進めていたため、ページ末尾が復元不能になる問題を修正する。ツール側の本文上限とLLM側の結果上限の不整合、25ページの処理上限、添付経路での継続情報欠落も共通契約で解消する。
- 共通PageResultと、メタデータ込みの結果上限内で本文量を決めるフォーマッターを追加
- v2トークンにPDFのページ番号とページ内文字位置を保持し、v1トークンの読み取り互換性を維持
- pdf_to_text、scrape_url、search_and_fetchを返却済み本文だけカーソルが進む方式へ統一
- max_pdf_pagesを文書全体ではなく1呼び出しの処理上限として扱い、長い単一ページと26ページ目以降の継続取得に対応
- attachment:<file_id>をセッション限定で解決し、既存添付も保存済みプレビューではなく元PDFから再解析
- Web取得ファイルをセッションとURL単位で重複排除し、HTMLおよびテキスト経路の全文ページングも維持
- 正常なページング結果の後段切断を禁止し、結果上限・コンテキスト予算・ラウンド上限では未取得状態を明示
- 日英プロンプト、UIメッセージ、ツールスキーマ、変更履歴を実装へ同期
- 実PDF、30ページ超、長い単一ページ、旧トークン、セッション分離、コンテキスト境界の回帰テストを追加
検証:
- pytest: 130 passed
- ruff check src tests: passed
- mypy src: passed
- c2144.pdf: 19ページ、抽出本文46015文字(ページ区切り込み46051文字)を8回で重複・欠落なく完全再構成
|
|
Finalize the 0.5.1 changelog with the logging lifecycle, search error diagnostics, and streaming chat cleanup delivered since v0.5.0.
Synchronize the project metadata and runtime package version at 0.5.1, and update changelog comparison links for the new release boundary.
Validated with uv lock --check, the complete 118-test suite, Ruff, mypy, source and wheel builds, packaged runtime assets, and application initialization from the installed wheel.
|
|
Store server.log inside OLLAMA_WEB_DATA_DIR and manage the ollama-web file handler through the Starlette lifespan. Close and detach the handler on shutdown to prevent duplicate records and Windows file locks when applications are recreated.
Stop converting DuckDuckGo provider failures into empty search results. Record a query-safe traceback, re-raise the original exception, and let ToolRegistry expose the exception type and message as a tool error without adding or spoofing Referer headers.
Remove the unused non-streaming chat_with_tools implementation and its private helpers. Move capability, options, standard tool, MCP tool, and final tools=[] regression coverage onto the production streaming path.
Add integration coverage for data/server.log placement, handler cleanup, repeated lifespans, and provider 403 diagnostics. Update the Unreleased changelog entry.
Validated with 118 tests, Ruff, mypy, diff checks, real DuckDuckGo searches, successful result-page fetches, and observable 401/403 responses from sites that reject automated retrieval.
|
|
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.
|