Skip to content

Release DG — stage-batch17 — 9-PR small-fix batch (v0.51.135) - #2944

Merged
nesquena-hermes merged 22 commits into
masterfrom
release/stage-batch17
May 25, 2026
Merged

nesquena-hermes merged 22 commits into
masterfrom
release/stage-batch17

Conversation

@nesquena-hermes

Copy link
Copy Markdown
Collaborator

Release DG / v0.51.135 — stage-batch17 (9 PRs)

Batched release of 9 small, scope-disjoint contributor fixes. All PRs were CI-green individually, all behavioral changes reuse existing helpers, all CHANGELOG entries present.

PRs merged

PR Author Net LOC Surface
#2917 franksong2702 +162 tests — pin profile= kwarg threading through metadata-only session reads
#2922 ai-ag2026 +172 docs — canonical session resolution RFC
#2912 ai-ag2026 +24/-1 1-line URL parser: ?session_id=<id> alias for ?session=<id>
#2906 ai-ag2026 +7 1-line dedupe in pending-message merge
#2936 franksong2702 +10/-5 gateway/status: identity-map heuristic when alive=None
#2940 george-andraws +22/-1 chat upload: send absolute server-side path for image attachments
#2927 Carry00 +123/-1 agent_health: profile-scoped gateway.pid fallback
#2921 franksong2702 +54/-3 sessions sidebar: optimistic repaint on Archive/Delete
#2919 franksong2702 +106 clarify card: reserve transcript bottom padding

Verification

  • ✅ Pre-merge: all 9 CI-green, no stale-base traps, identical master..PR and merge-base..PR deltas
  • ✅ Post-merge: no merge markers, ast.parse clean on all .py, node -c clean on changed JS
  • ✅ pytest: 6565 passed / 6 skipped / 3 xpassed / 0 failures (177.75s sequential, -p no:xdist)
  • ✅ Opus advisor: SHIP-AS-IS (verified all 6 listed concerns line-by-line: architectural overlap, resize-listener leak, dedupe aggressiveness, URL precedence, profile-fallback exception handling, configured semantics)
  • ✅ CHANGELOG [Unreleased][v0.51.135] stamped, 6 visible Fixed entries + 1 Added entry

CHANGELOG body

## [v0.51.135] — 2026-05-25 — Release DG (stage-batch17 — 9-PR small-fix batch)

### Added
- Added a proposed canonical session resolution RFC covering URL routes, query parameters, localStorage, sidebar rows, and compression-lineage IDs so future session-routing fixes have one review contract.

### Fixed
- Browser session links that use the API-style `?session_id=<id>` query parameter now open the requested conversation instead of falling back to the last locally stored session.
- Gateway status now treats existing messaging-session metadata as configured when `gateway.status` is unavailable, avoiding a misleading "Gateway not configured" warning for multi-container deployments with active gateway sessions.
- Session sidebar Archive/Delete menu actions now repaint from local sidebar state immediately after the server confirms the mutation, instead of waiting for the full `/api/sessions` refresh before the row disappears.
- Clarification dialogs now reserve transcript space while open or collapsed, so the question prompt no longer covers the assistant text needed to answer it.
- Chat uploads now send the absolute server-side path for image attachments in the agent text context, restoring immediate tool access (e.g. `vision_analyze`) to files uploaded in the current turn.
- Pending uploaded-file user turns no longer double-render when both the optimistic bubble and the server's pending-message hydration produce the same `[Attached files: ...]` suffix.

Notes for reviewers

This is a small-fix batch — every PR is 1–5 LOC behavioral or a focused test/doc add. No new contracts, no architecture changes, no DB migrations. v0.51.134 from earlier today is unchanged; this batch sits cleanly on top.

ai-ag2026 and others added 22 commits May 25, 2026 06:11
_gateway_root_pid_path() unconditionally returned <hermes_root>/gateway.pid.
Profile-scoped gateways (started with --profile <name> or via active_profile)
write their runtime files under <hermes_root>/profiles/<name>/ instead of the
root, so the root-level path never existed.

build_agent_health_payload() therefore always received a non-existent pid_path,
fell through to the stale root-level gateway_state.json, and returned alive=None.
This caused the cron/scheduled-jobs page to display "Gateway not configured" even
when a gateway was actively running.

Fix: after failing to find a root-level gateway.pid, fall back to the active
profile directory via get_active_hermes_home(). Root-level wins when it exists,
so deployments that do write there are unaffected. Errors from profile lookup are
swallowed and the root path is returned, preserving the previous safe default.

Adds five focused unit tests covering the new fallback, the priority rule, and
the error-handling path.
# Conflicts:
#	CHANGELOG.md
# Conflicts:
#	CHANGELOG.md
# Conflicts:
#	CHANGELOG.md
# Conflicts:
#	CHANGELOG.md
@nesquena-hermes
nesquena-hermes merged commit a0ab168 into master May 25, 2026
3 checks passed
@nesquena-hermes
nesquena-hermes deleted the release/stage-batch17 branch May 31, 2026 04:23
SysAdminDoc pushed a commit to SysAdminDoc/hermes-webui that referenced this pull request Jun 26, 2026
Release DG — stage-batch17 — 9-PR small-fix batch (v0.51.135)
bernyforce pushed a commit to bernyforce/hermes-webui that referenced this pull request Jul 29, 2026
Release DG — stage-batch17 — 9-PR small-fix batch (v0.51.135)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants