Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
1f3b7aa
feat(memory): show third-party notes sources
AJV20 May 18, 2026
faf1160
fix(memory): show configured notes sources without tools
AJV20 May 18, 2026
2f78835
fix(memory): infer configured notes source tools
AJV20 May 18, 2026
54ca6bf
feat(memory): browse Joplin notes from notes drawer
AJV20 May 18, 2026
8c08ace
feat(memory): show AI-used Joplin notes
AJV20 May 18, 2026
372d090
fix(memory): match notes search button styling
AJV20 May 18, 2026
8e65ad3
fix(chat): add WebUI surface context to agent turns
AJV20 May 18, 2026
5c1161f
feat(chat): load WebUI prefill context
AJV20 May 18, 2026
540292a
fix(chat): align WebUI context with messaging sessions
AJV20 May 18, 2026
56a8c6d
fix(chat): harden WebUI prefill scripts
AJV20 May 18, 2026
ac19de9
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 19, 2026
d43de57
test: Use generic redaction fixture
AJV20 May 19, 2026
d3a07b8
test: Use generic redaction fixture
AJV20 May 19, 2026
6805b3d
Merge remote-tracking branch 'origin/master' into audit-2527
AJV20 May 19, 2026
35da27b
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 19, 2026
6e9f709
fix(memory): cover notes source locale keys
AJV20 May 19, 2026
19565b6
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 22, 2026
e794b54
Merge remote-tracking branch 'origin/master' into feat/webui-notes-so…
AJV20 May 22, 2026
42a6cf3
Merge remote-tracking branch 'origin/master' into feat/webui-notes-so…
AJV20 May 22, 2026
171d93a
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 22, 2026
50195c2
fix(chat): keep WebUI prefill file-only
AJV20 May 22, 2026
7305d47
feat(memory): gate third-party notes drawer
AJV20 May 22, 2026
d9e1a9c
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 22, 2026
86b5a8f
Merge remote-tracking branch 'origin/master' into feat/webui-notes-so…
AJV20 May 22, 2026
b140c53
Merge remote-tracking branch 'origin/master' into feat/webui-notes-so…
AJV20 May 23, 2026
a263abd
Merge remote-tracking branch 'origin/master' into fix/webui-context-p…
AJV20 May 23, 2026
9bd595d
fix: avoid stamping display personality on sessions
AJV20 May 24, 2026
7af7370
Merge remote-tracking branch 'origin/master' into fix/session-persona…
AJV20 May 24, 2026
b0f7a7b
feat: add PWA sidebar edge swipe
AJV20 May 24, 2026
f0b0854
fix: preserve webui launcher environment
Charanis May 24, 2026
6e2991f
Merge remote-tracking branch 'origin/master' into maint/pr-2865
AJV20 May 24, 2026
cf92aa5
Merge remote-tracking branch 'origin/master' into maint/pr-2868
AJV20 May 24, 2026
24979c8
Merge remote-tracking branch 'origin/master' into maint/pr-2527
AJV20 May 24, 2026
d7b98d8
Merge remote-tracking branch 'origin/master' into maint/pr-2547
AJV20 May 24, 2026
7c460ef
fix(i18n): add Turkish notes-source strings
AJV20 May 24, 2026
2d803af
Merge pull request #2865 from AJV20/fix/session-personality-default
May 24, 2026
6f94a44
Merge pull request #2868 from AJV20/feat/pwa-sidebar-swipe
May 24, 2026
0279f1b
Apply zh-CN session-time label clarifications from #2882 (ycj)
May 24, 2026
1ec0bbc
Stage-batch13: PR #2882 polish — fix zh-TW indent + CHANGELOG entry
May 24, 2026
d42253b
Merge pull request #2873 from Charanis/codex/webui-launcher-env-pr
May 24, 2026
376fb78
Stage-batch13: CHANGELOG for #2873 launcher env
May 24, 2026
767a9cd
Merge pull request #2527 from AJV20/feat/webui-notes-sources
May 24, 2026
e5533ea
Merge pull request #2547 from AJV20/fix/webui-context-parity
May 24, 2026
d012436
Stamp CHANGELOG for v0.51.131 (Release DC / stage-batch13 / 6-PR note…
May 24, 2026
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
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,38 @@

## [Unreleased]

## [v0.51.131] — 2026-05-24 — Release DC (stage-batch13 — 6-PR notes-drawer + context-parity + PWA-swipe + locale polish)

### Added

- **PR #2868** by @AJV20 — Installed/mobile PWA sessions now support an edge swipe from the left side of the screen to open the mobile sidebar drawer, while preserving the existing hamburger and overlay controls. PWA-standalone-gated, edge X<28px, vertical-tolerance 48px, interactive-target exclusion. Defends against accidental triggers from text selection or button taps.

- **PR #2527** by @AJV20 — Default-off, read-only Third-party notes drawer in the Memory panel. Lists configured note/knowledge MCP sources (Joplin, Obsidian, Notion, llm-wiki) when explicitly enabled via `webui_external_notes_sources` config or `HERMES_WEBUI_EXTERNAL_NOTES_SOURCES=1`. Automatic session recall unchanged. 4 API endpoints (`/api/notes/sources`, `/api/notes/search`, `/api/notes/item`, plus `external_notes_enabled` in memory_read response) all gated behind the feature flag.

- **PR #2547** by @AJV20 — SSE stream runtime diagnostics in deep health checks: active stream count, subscriber totals, and offline buffered-event counts for stuck or slow WebUI chat investigations. Non-sensitive payload only.

- **PR #2547** by @AJV20 — WebUI session prefill parity for bounded JSON files. Browser-originated chat turns can load configured prefill context from `prefill_messages_file`, pass it to Hermes Agent as ephemeral model context, and surface a compact context status event in the chat UI without exposing prefill message bodies. WebUI intentionally does not execute `prefill_messages_script`; executable recall should go through the existing MCP/tool surface. Backward-compatible: degrades gracefully on older agent builds that don't support the `prefill_messages` kwarg.

### Changed

- **PR #2547** by @AJV20 — Browser-surface session context is now attached to WebUI agent turns so the agent can distinguish a WebUI chat from messaging-platform transcripts. Context is ephemeral (not saved to history). WebUI progress guidance now preserves the normal Hermes messaging style instead of encouraging extra browser-only status chatter.

### Fixed

- **PR #2865** by @AJV20 — New WebUI sessions no longer persist `display.personality` into per-session `Session.personality`; only explicit personality changes remain durable, preventing stale global display defaults from overriding profile-scoped session behavior. Closes #2845.

- **PR #2882** by @ycj — zh-CN (Simplified Chinese) session-time relative labels are now clearer: `${n}分钟前`, `${n}小时前`, `${n}天前`, and the more natural last-week phrasing `上周` instead of the previous bare-unit shorthand. Also corrects a small indentation glitch in the zh-TW (Traditional Chinese) locale. (Cherry-picked onto fresh stage with `Co-authored-by` attribution — original PR was based on stale master.)

- **PR #2873** by @Charanis — The WebUI launcher (`ctl.sh` + `bootstrap.py`) now preserves environment variables that have already been resolved by the shell (for example `HERMES_WEBUI_PORT`, `HERMES_WEBUI_STATE_DIR`, `HERMES_WEBUI_HOST`) instead of letting a repo-level `.env` clobber them mid-launch. The `.env` keeps working as a default-only source for unset variables, gated by `HERMES_WEBUI_PRESERVE_ENV=1` set by the launcher subshell.

### Notes

- **6,503 pytest passed** (sequential mode; the test infrastructure uses a single test server that doesn't support xdist parallelism — known limitation, tracked separately).
- **Opus Advisor verdict: SHIP-AS-IS.** Zero MUST-FIX. Three SHOULD-FIX items filed as follow-up issues (incomplete locale coverage for notes-drawer i18n keys, `_joplin_api_get` URL-token defense-in-depth, prefill `setattr` cache-reuse safety net).
- **#2527 i18n coverage**: 10 of the 11 non-en locales currently ship the English string `'Third-party notes'` for the drawer header. Since the drawer is default-off, user impact is zero today; follow-up issue tracks proper translations before any default-on transition.



## [v0.51.130] — 2026-05-24 — Release DB (stage-batch12 — 3-PR profile-isolation + boot-precedence + workspace Artifacts tab)

### Fixed
Expand Down
14 changes: 1 addition & 13 deletions api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1945,18 +1945,6 @@ def new_session(workspace=None, model=None, profile=None, model_provider=None, p
if model_provider:
effective_model_provider = model_provider

# Read default personality from config display.personality
_default_personality = None
try:
from api.config import get_config as _get_cfg_for_personality
_cfg_personality = (_get_cfg_for_personality().get('display') or {}).get('personality')
if _cfg_personality and isinstance(_cfg_personality, str):
_cfg_personality = _cfg_personality.strip().lower()
if _cfg_personality and _cfg_personality not in ('default', 'none', 'neutral'):
_default_personality = _cfg_personality
except Exception:
pass

wt = worktree_info if isinstance(worktree_info, dict) else None
workspace_path = (wt.get('path') if wt and wt.get('path') else workspace) if wt else workspace
s = Session(
Expand All @@ -1965,7 +1953,7 @@ def new_session(workspace=None, model=None, profile=None, model_provider=None, p
model_provider=effective_model_provider,
profile=profile,
project_id=project_id,
personality=_default_personality,
personality=None,
worktree_path=wt.get('path') if wt else None,
worktree_branch=wt.get('branch') if wt else None,
worktree_repo_root=wt.get('repo_root') if wt else None,
Expand Down
Loading
Loading