release: v0.50.150 — session index, read-path, profile-switching fixes
Bundles three bug fixes (PRs #847, #848, #849) and updates README test count to 1858. - v0.50.148: prune stale _index.json ghost rows after session-id rotation (closes #846) - v0.50.149: side-effect-free GET /api/session model resolution (closes #845) - v0.50.150: profile switching cookie persist + syncTopbar fix + active indicator state
This commit is contained in:
32
CHANGELOG.md
32
CHANGELOG.md
@@ -1,5 +1,37 @@
|
||||
# Hermes Web UI -- Changelog
|
||||
|
||||
## [v0.50.150] — 2026-04-22
|
||||
|
||||
### Fixed
|
||||
- **Profile switching: three related state fixes** — (1) `hermes_profile=default`
|
||||
cookie is now persisted instead of being cleared with `max-age=0`, which had
|
||||
caused the browser to fall back to the process-global profile on the next
|
||||
request. (2) The `sessionInProgress` branch of `switchToProfile()` now calls
|
||||
`syncTopbar()` instead of the undefined `updateWorkspaceChip()`. (3) Sidebar
|
||||
and dropdown active-profile rendering now prefer `S.activeProfile` client
|
||||
state when available, with a safe fallback. (#849 by @migueltavares)
|
||||
|
||||
## [v0.50.149] — 2026-04-22
|
||||
|
||||
### Fixed
|
||||
- **`GET /api/session` is now side-effect free for stale-model sessions** —
|
||||
the read path previously called `_normalize_session_model_in_place()`,
|
||||
which could write back to disk and update the session index while handling
|
||||
a plain read. Replaced with a read-only
|
||||
`_resolve_effective_session_model_for_display()` that returns the effective
|
||||
display model without any write-back. Closes #845. (#848 by @franksong2702)
|
||||
|
||||
## [v0.50.148] — 2026-04-22
|
||||
|
||||
### Fixed
|
||||
- **Prune stale `_index.json` ghost rows after session-id rotation** — index
|
||||
entries whose backing session file no longer exists (e.g. after context
|
||||
compression rotates the session id) are now pruned on both incremental
|
||||
index writes and `all_sessions()` reads. Fixes duplicate session entries
|
||||
in the sidebar. Also pre-snapshots `in_memory_ids` under a single `LOCK`
|
||||
acquisition in `all_sessions()` rather than one per row — small but
|
||||
measurable contention reduction. Closes #846. (#847 by @franksong2702)
|
||||
|
||||
## [v0.50.147] — 2026-04-22
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -408,7 +408,7 @@ Or using the agent venv explicitly:
|
||||
```
|
||||
|
||||
Tests run against an isolated server on port 8788 with a separate state directory.
|
||||
Production data and real cron jobs are never touched. Current count: **961 tests**
|
||||
Production data and real cron jobs are never touched. Current count: **1858 tests**
|
||||
across 53 test files.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user