更新履歴¶
すべての重要な変更はここに記録されます。形式は Keep a Changelog に基づき、このプロジェクトは Semantic Versioning に従っています。
Unreleased¶
main に含まれているが、まだタグ付きリリースに含まれていない変更。
1.3.1 - 2026-05-19¶
Fixed¶
- 正規表現エクスポートの 100,000 件上限を撤廃し、カーソルページネーションによる完全な大規模エクスポートに対応。
- 正規表現での履歴検索中に UI がフリーズしなくなった。スキャン処理をバックグラウンドスレッドに移行。
- 月次時間範囲の計算が DST(夏時間)の切り替えで不正にずれる問題を修正。
- 隠しドメインフィルターがドメイン名に含まれる LIKE ワイルドカード文字を正しくエスケープするように修正。
- URL プレフィックスのレコード集計で重複するプレフィックスを二重計上しなくなった。
- WebDAV クリーンアップの失敗が静かに無視されずに報告されるようになった。マニフェストのタイムスタンプをアップロード時刻に合わせて修正。
- HTML エクスポートのテンプレートに注入マーカーがない場合、破損した出力を生成する代わりにエラーを発生させるように修正。
- シャットダウン時の設定保存を抑制してデータ破損を防止。失敗した設定プロモーションがクリーンにロールバックされるように修正。
- 設定バックアップのローテーションを修正。マイグレーション誤検知の防護を追加。
- バッジデータの読み込みでデータベースエラーが発生してもクラッシュせず適切に処理するように修正。
- エクストラクターのバックアップスレッドがシャットダウン時にメインプロセスを暗黙的にブロックしなくなった。
- FTS 除外データベースエクスポート中に発生しうるデッドロックを解消。
Build¶
- PyInstaller spec の WebDAV 隠しインポートを
webdav4からwebdav3に修正し、パッケージ版でのモジュール欠落エラーを解決。
1.3.0 - 2026-05-14¶
Added¶
- デフォルトテーマを Dark から System に変更し、初期状態で OS の外観に追従するようになりました。
- ブラックリストおよび非表示ドメイン管理ダイアログに、適用前の影響件数を確認できるレコード数プレビューを追加しました。
- 正規表現モード用の最近の検索履歴を分離し、高度な検索ワークフローを整理しました。
- 静的なトレイアセットを置き換える、SVG ベースのアニメーション対応トレイレンダラーによるアプリアイコンの再設計を行いました。
- 多言語対応の MkDocs ドキュメントサイトを追加しました。
Fixed¶
- プロセスクラッシュ後に静かに失われる FTS トリガーを、すべての履歴書き込み経路の前で復旧するようにしました。
title:とurl:の検索トークンが互いを上書きしなくなり、複数語のフィールドクエリも AND 条件に正しく分割されるようになりました。- 非表示ドメインがオーバーレイのクイック検索で正しく除外されるようになりました。
- Safari の増分抽出における時間境界条件を修正しました。
- 非標準インストールを除外していた browser scanner の誤ったパスフィルターを削除しました。
- 設定読み込み時に復号に失敗しても、WebDAV パスワードの暗号文を保持するようにしました。
- 単一起動時にトークンファイル書き込みが失敗しても安全にフォールバックするようにしました。
- 以前のデバイス ID を引き継ぐ際、履歴レコードが正しく移行されるようにしました。
- ワーカースレッドから誤った引数型が送られても
sync_progressシグナルが保護されるようにしました。 - リアルタイム同期進捗を復元し、QThread ラッパーの寿命管理を強化して destroyed-while-running クラッシュを防ぎました。
- バックアップスレッドのライフサイクルを修正し、自動バックアップ例外を同期フローから分離しました。
- 同期中のクロススレッドシグナル送出レースと QThread 寿命問題を解消しました。
- upsert 例外発生時に FTS トリガーを即時復旧し、書き込みウィンドウを閉じるようにしました。
get_recordsで_ro_lockを 2 段階のクエリ全体に保持し、接続レースを解消しました。- クラッシュ時に古いマニフェストが残らないよう、古いバックアップ削除前に WebDAV 同期マニフェストをアップロードするようにしました。
- TOCTOU レースを防ぐため、ドメインキャッシュ書き込みをロックで保護しました。
- 正規表現の load-more 経路で古いページキャッシュを追い出し、空行が出る問題を防ぎました。
- 初回表示時にダイアログが左上で一瞬点滅する問題を解消しました。
- Linux でオートコンプリートのフォントサイズを有効範囲に制限しました。
- システムトレイが利用できない場合はトレイ最小化を防ぐようにしました。
Performance¶
- O(N) の
vt_cacheトリムを、ページ粒度の LRU 退避に置き換えました。 export_without_ftsでVACUUM INTOの前に書き込みロックを解放するようにしました。- extractor manager 内の共有レジストリとフィルター集合をロックで保護し、データ競合を防ぎました。
Build¶
- Linux 向けに Qt プラットフォームのフォールバックを追加し、xcb 依存関係を同梱してそのまま起動できるようにしました。
- 改行コードとバイナリファイル向けの包括的な
.gitattributesルールを追加しました。
1.2.2 - 2026-04-29¶
Fixed¶
- CLI の
restoreが、ユーザーが選んだバックアップではなく常に最新バックアップを復元していた問題を修正しました。 - CLI の
restoreが favicon 復元フラグを尊重していなかった問題を修正しました。 CLI restore --replaceが安全でないデータベース置換を行っていた問題を修正しました。- スケジューラの先行タイマーがキャンセルされず、再スケジュール後に古いコールバックが発火する問題を修正しました。
- 端末サイズ API の使用を修正し、すべての CLI コマンドで出力整形が正しく動作するようにしました。
1.2.1 - 2026-04-23¶
Added¶
- ブックマークカードに「履歴で表示」ボタンを追加し、すばやく該当履歴へ移動できるようにしました。
- ブックマークカードのタグ領域またはメモ領域をクリックすると、直接エディターを開くようにしました。
Fixed¶
Ctrl+F/Ctrl+Rのグローバルショートカット競合を解消し、履歴ビューで確実に動作するようにしました。- 日付区切りの訪問数が、現在のフィルターと非表示レコード表示モードを正しく反映するようになりました。
1.2.0 - 2026-04-23¶
Added¶
- 専用設定パネル付きの、グローバルおよびアプリ内で使える 14 個の設定可能なキーボードショートカットを追加しました。
- 非表示レコード表示モードを追加し、ソフト非表示レコード専用ビューを提供します。
- ドメイン単位のソフト非表示機能を追加し、削除せずにそのドメインの全レコードを隠せる専用管理 UI を提供します。
- ポータブルモードを追加し、アプリルートの
.portableマーカーファイルを自動検出して全データをdata/に保存するようにしました。 - クイックアクセスオーバーレイとオートコンプリート候補に「Search the Web」を追加し、設定可能な検索エンジンプリセットを利用できるようにしました。
- 「最小化してトレイ起動」設定を追加しました。
- 遅延 GUI のトレイ最小化モードを追加し、初回表示までウィンドウと各サブシステムの初期化を遅延します。
- 列の表示切り替えや並び替え後も日付区切りが復元されるようになりました。
- システムの Dark/Light モード追従をリアルタイム対応にしました。
Changed¶
- WebDAV アップロードを chunked 方式から atomic streamed 方式へ変更し、信頼性を大幅に向上させ、Windows での一時ファイルディスクリプタリークを解消しました。
- ヘッドレスモードで GUI サブシステムをスキップし、SQLite キャッシュを抑えてバックグラウンド時のメモリ使用量を削減しました。
- ドメインおよびアイコンキャッシュの退避を全消去
clear()から FIFO のpopitem()に変更し、周期的な退避スパイクを解消しました。 - 列表示切り替えをサブメニューへ移動し、ツールバーを整理しました。
Fixed¶
- 接続ライフサイクルのロック順序を統一し、WAL の read-after-write 不整合を解消しました。
_vacuuming=True中にprune_tombstonesが走って VACUUM がクラッシュする問題を修正しました。- tombstone を VACUUM 中に整理し、テーブルが無制限に増大するのを防ぎました。
- 削除・非表示・再表示後のスクロールのガタつきを修正し、先頭へ飛ばずにスクロール位置を保持するようにしました。
- 長いタイトルが設定カード内の操作ボタンを画面外へ押し出さないようにしました。
- テーマ切り替え後に不要な横スクロールバーが出る問題を解消しました。
- ブックマークと注釈の読み取りが、書き込み直後でも新しいデータを即座に参照できるようにしました。古い WAL スナップショット問題も修正しました。
- BFS の browser scan で Windows Junction をたどらないようにしました。
- 非常に長い間隔で整数オーバーフローしないよう、
QTimerの間隔をINT32_MAXに制限しました。 BrowserMonitorがアプリ終了時に正しく停止するようになりました。- 複数語の CLI 検索クエリを引用符なしで受け付けるようにしました。
- CLI の長い表出力を省略記号付きで切り詰め、行あふれを防ぐようにしました。
encrypt_textの失敗を黙って捨てず、WebDAV パスワード関連エラーを伝播させるようにしました。get_bookmarked_urlsがDISTINCTを使うようになり、重複 URL が返らないようになりました。
Performance¶
get_recordsの 2 段階 keyset pagination により、大規模履歴での O(N) offset scan を解消しました。- 正規表現検索のページネーションを SQL レイヤーへ移し、全表 O(N) スキャンを解消しました。
- paint、
data()、URL 解析、eventFilterのホットパス最適化により、高速スクロール時のラグを軽減しました。 DashboardPageはウィンドウが非表示のとき、ブラウザ状態更新をスキップするようにしました。
Security¶
- 暗号化を V2 形式へ更新し、暗号化と認証に独立した HKDF サブキーを使用するようにしました。
- リプレイ攻撃防止のため、単一起動 IPC に nonce ベース認証を追加しました。
- HTML エクスポートの XSS 脆弱性を修正し、埋め込み前に SVG アイコンをサニタイズするようにしました。
- マスターパスワードのアイドルタイムアウトが、システムスリープ中も正しく時間を数えるよう
time.time()を使用するようになりました。 - マスターパスワード回避の抜け道を塞ぎ、古いセッション UI の問題を修正しました。
Build¶
- macOS 向けのスタンドアロン
tar.gzアーティファクトを追加しました。 - Windows 向けのポータブル ZIP とセットアップインストーラーを追加しました。
- CI で Windows のスタンドアロン Python ランタイムをキャッシュし、ビルド時間を短縮しました。
1.1.1 - 2026-04-12¶
Fixed¶
- オーバーレイ (
Ctrl+Shift+H) を再オープンした際の縦方向ドリフトを修正しました。 - 履歴テーブルにランダムで横スクロールバーが出る問題を修正しました。
- 履歴ページからブックマークを変更した後、ブックマークページが更新されない問題を修正しました。
- 競合時に
bookmarked_atタイムスタンプが更新されない問題を修正しました。 - WebDAV クライアント初期化中の潜在的なレースコンディションを修正しました。
- 接続リセット後に
_excl_cacheが未消去で古いフィルターヒットが残る問題を修正しました。
Performance¶
- 履歴クエリとブックマーク・注釈バッジの読み込みをバックグラウンドスレッドへ移し、UI をブロックしないようにしました。
- 表示用ドメインを描画経路上で都度 URL 解析する代わりに、
domainsテーブルへの JOIN で解決するようにしました。 export_without_ftsの冗長な 2 回目の VACUUM を削除しました。hidden_recordsに対するNOT INサブクエリを、より効率的なNOT EXISTS相関参照へ置き換えました。
1.1.0 - 2026-04-11¶
Added¶
- Spotlight 風のグローバルクイック検索オーバーレイ (
Ctrl+Shift+H) を追加し、どのアプリからでも履歴・ブックマーク・注釈を即時検索できるようにしました。 - 高度な検索構文
domain:、after:、before:、title:、url:、browser:、device:、is:bookmarked、has:note、tag:を追加しました。 - 検索バーにインラインのゴーストテキスト補完と fuzzy マッチの候補ドロップダウンを追加しました。
- GitHub 風の年間アクティビティヒートマップ、ブラウザ利用円グラフ、24 時間アクティビティ棒グラフ、高解像度画像のワンクリック出力を備えた統計ページを追加しました。
- ブックマークと注釈システムを追加し、URL へのタグ付けやリッチテキストメモで個人ナレッジベースを構築できます。
sync、backup、search、export、restore、config、db、watch モードを備えたヘッドレス CLIhsyncを追加しました。argcompleteによるhsyncのシェル補完を追加しました。Bash、Zsh、Fish に対応します。- デバイス ID 管理を追加し、デバイス名変更、不要デバイス削除、OS 再インストール後の過去 ID 引き継ぎが可能です。
- WebDAV 復元が破壊的上書きではなく、ローカルデータとのマージを行うようになりました。
- 履歴テーブルからのネイティブな URL ドラッグアンドドロップ出力に対応しました。
Alt+ドラッグまたは favicon ドラッグでデスクトップやエディタへ出力できます。 - スクロール時の時間バブルを追加し、スクロールバー操作中に日付、主要ドメイン、アクティビティ密度バーを表示します。
- QQ Browser、Sogou、Twinkstar、CentBrowser、2345 Explorer、Liebao、UC Browser (Desktop)、Quark のネイティブ対応を追加しました。
- Waterfox、LibreWolf、Pale Moon、Basilisk、SeaMonkey など Firefox 派生ブラウザへの対応を追加しました。
- Chrome、Edge、Brave の Canary/Dev/Beta チャネル対応を追加しました。
- ポータブルまたは非標準ブラウザインストールを自動検出する BFS 深度スキャンを追加しました。
- オーバーレイのフェードイン・フェードアウトアニメーションを追加しました。
- 初回実行ウィザードを刷新し、初期設定を簡単にしました。
- v1.0.x からのロスレス移行ウィザードを追加しました。
- 時間バブル表示モード用のスクロールバーコンテキストメニューを追加しました。
- 時間バブルに慣性付きの滑らかなアニメーションを追加しました。
Fixed¶
- Windows での WebDAV バックアップ中のファイルロック問題を修正しました。
- Dark/Light テーマ切り替え時にスクロールバー位置が飛ぶ問題を修正しました。
- 複数語の FTS クエリが、精度向上のため AND セマンティクスを使うようになりました。
normalize_domainsの UPDATE を 5000 行単位のチャンク処理にし、長時間の書き込みロックを避けるようにしました。- 非表示レコードを分析統計とオーバーレイクイック検索から除外するようにしました。
- VACUUM 中の同時アクセスを防ぐため、
_ensure_connを_vacuumingフラグで保護しました。
Performance¶
- SQLite 抽出処理をバッチ挿入と事前コンパイル済み正規表現で書き直し、メモリ使用量を削減しつつ高速化しました。
- favicon 描画を LRU キャッシュと SVG 再着色で最適化し、高速スクロール時のカクつきを解消しました。
- 履歴ページ初期読み込みで段階的初期化を採用し、初回描画までの時間を短縮しました。
1.0.0 - 2026-03-24¶
最初の安定版リリース。
Added¶
- Chromium 系、Firefox 系、Safari ブラウザからの履歴集約に対応しました。Chrome、Edge、Brave、Opera、Vivaldi、Arc などを含みます。
- trigram tokenizer を使う FTS5 全文検索を備えたローカル SQLite データベースを追加し、ミリ秒級の部分文字列検索を実現しました。
- ZIP 圧縮と SHA-256 整合性検証を備えた WebDAV クラウドバックアップと復元を追加しました。
- WAL 安全なデータベースコピーによる、複数ブラウザ・複数プロファイル対応を追加しました。
- 数百万件の履歴リストを快適に閲覧できる仮想スクロールを追加しました。
- 同期状態通知を備えたシステムトレイ統合を追加しました。
- HKDF-SHA256 とシステムキーチェーン統合による WebDAV 認証情報のマスターパスワード暗号化を追加しました。
- Windows および macOS パッケージを提供しました。