| @@ -8,9 +8,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/). |
| ## [Unreleased] |
| |
| ### Added |
| -- Progressive search via SSE (`/api/search/stream`): local bookmark results appear instantly, external engine results stream in as they arrive, using `EventSource` with zero external dependencies. |
| -- `?js=true` query parameter for the `/search` handler: skips external engines during page render (~50ms instead of ~1700ms). JS automatically inserts this into the URL via `history.replaceState`/`pushState`, enabling fast loading on all subsequent interactions. |
| -- Integration tests for the SSE endpoint covering content-type, bookmark events, done events, empty queries, no-match queries, and bang redirects. |
| + |
| +- Cross-encoder reranker pipeline (`BAAI/bge-reranker-v2-m3`, ~2 GB) for higher tagging precision. Falls back to bi-encoder scores on failure. Configurable via `[tagging] reranker_enabled` and `reranker_model`. |
| +- Negative examples support in tag definitions (`negatives` field in `[[tagging.tags]]`). Score formula uses mean-pooling: `pos_mean - neg_mean * 0.3`. |
| +- `search_hub config-schema` command that prints the full JSON Schema for the config file format. |
| +- `schemars` dependency for deriving `JsonSchema` on all config structs. |
| +- abbaye script builder to auto-generate `search_hub.schema.json` during release. |
| +- `$schema` property in `init-config` output pointing to the published schema URL. |
| +- `override_tags` option for `[tagging]` to use only user-provided tags. |
| +- `tag_weight` config option for controlling FTS5 tags column ranking weight. |
| + |
| +### Changed |
| + |
| +- Config restructured: `tagging_enabled` / `tagging_threshold` flattened keys moved into `[tagging]` section as `enabled` / `threshold`. Web server options moved to `[web]` section. Custom `[[tags]]` moved under `[tagging]` as `[[tagging.tags]]`. |
| +- `TaggingEngine::new()` signature extended with `reranker_enabled` and `reranker_model` parameters. |
| +- Tag scoring switched from max-pooling to mean-pooling (average consensus across examples, not best match). |
| +- README rewritten with improved flow: quick start up top, CLI reference before auto-tagging, bloated inline config replaced with concise overview. |
| +- `contrib/release.sh` now generates `search_hub.schema.json` during release. |
| + |
| +## [0.7.0] - 2026-06-26 |
| + |
| +### Added |
| - `tagging` cargo feature (included by default) gating `fastembed`/ONNX Runtime. Build with `--no-default-features` to produce a ~30% smaller binary without semantic auto-tagging. |
| - Second abbaye `cargo` builder with `no_default_features = true` so release page offers both binaries. |
| |
| @@ -19,6 +37,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/). |
| - Pruned `tokio` from `features = ["full"]` to only needed features (`rt-multi-thread`, `macros`, `signal`, `sync`, `time`, `fs`). |
| - Pruned `actix-web` from default features to only `macros` + `compat-routing-macros-force-pub`. |
| |
| + |
| +## [0.6.0] - 2026-06-26 |
| + |
| +### Added |
| +- Progressive search via SSE (`/api/search/stream`): local bookmark results appear instantly, external engine results stream in as they arrive, using `EventSource` with zero external dependencies. |
| +- `?js=true` query parameter for the `/search` handler: skips external engines during page render (~50ms instead of ~1700ms). JS automatically inserts this into the URL via `history.replaceState`/`pushState`, enabling fast loading on all subsequent interactions. |
| +- Integration tests for the SSE endpoint covering content-type, bookmark events, done events, empty queries, no-match queries, and bang redirects. |
| + |
| + |
| ## [0.5.2] - 2026-06-24 |
| |
| ### Fixed |