Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,31 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.2.0] - 2026-07-30
Comment thread
clean6378-max-it marked this conversation as resolved.

### Added

- `KNOWN_TOOL_TYPES` registry in `utils/tool_dispatch.py`; sync test keeps dispatch, file activity, Markdown export, and frontend renderers in step (#104)
- `static/tool_types.json` generated from the registry and loaded at SPA boot; warns in the console when renderers drift; unknown tools show their type name and JSON payload (#105)
- `GET /api/schema-report` and an amber banner on the session list when upstream JSONL fields appear or go missing (#108)
- Disk summary cache at `~/.claude-code-chat-browser/session_summary_cache.sqlite` plus a display-name cache so project and session lists load faster after restart (#111)
- FTS5 search index in `utils/search_index.py` with background rebuild; `/api/search` hits the index first and falls back to live scan; default window is 30 days (`all_history`, `since_days` for wider ranges) (#120)
- `/api/search` returns proper error codes for empty queries, overlong queries, bad `since_days`, and locked indexes; search page gets an all-history checkbox, a 50-result cap warning, snippet highlighting, and separate empty vs error UI (#121)
- Lock order and threading model for the search index in `docs/architecture.md` (#138)
- `tests/test_search_index_concurrency.py` for rebuild/query concurrency and lock-order checks (#139)
- Python and Vitest parity oracles in `tests/test_dual_path_parity_oracle.py` and `static/js/render/tool_result/dual_path_parity_oracle.test.js` (#140)

### Changed

- Session, stats, and export routes share `api/_session_handlers.py` and one `SESSION_LOAD_ERRORS` tuple (#125)
- Tool result dispatch picks winners by explicit priority instead of tuple order (`plan` over `file_write`, `task_message` over narrower task shapes) (#127)
- CLI bulk export prints the same `ErrorCode` values and messages as the HTTP API (#134)

### Fixed

- YAML frontmatter in Markdown export now quotes values that contain colons, `#`, tabs, newlines, or boolean literals; `models_used` and `service_tiers` export as sequences (#107)
- `SEARCH_INDEX_UNAVAILABLE` (503) when the FTS index is locked and live scan also fails (#122)

## [0.1.0] - 2026-06-18

### Added
Expand All @@ -29,5 +54,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

- `export_count` on `GET /api/export/state` — use `last_export_session_count` (deprecated in PR #60; removed before `v0.1.0` per [deprecation policy](docs/deprecation-policy.md) bundled SPA path; SPA updated in same release cut)

[Unreleased]: https://github.com/cppalliance/claude-code-chat-browser/compare/v0.1.0...HEAD
[Unreleased]: https://github.com/cppalliance/claude-code-chat-browser/compare/v0.2.0...HEAD
[0.2.0]: https://github.com/cppalliance/claude-code-chat-browser/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/cppalliance/claude-code-chat-browser/commits/v0.1.0
Loading