Skip to content

stage-355: 11-PR full sweep batch — metadata-only cache hit fixes + skill detail fix + phone UX + escaping + display-title projection + RFC update + test fixture hardening - #2263

Merged
nesquena-hermes merged 27 commits into
masterfrom
stage-355
May 14, 2026

Conversation

@nesquena-hermes

Copy link
Copy Markdown
Collaborator

stage-355 — full PR sweep batch (v0.51.62)

Per Nathan's "full PR sweep" trigger. Eleven non-hold non-draft PRs all → MERGE QUEUE.

+1186 / -421 across 35 files. Eleven PRs from three contributors (franksong2702 × 9, Jordan-SkyLF × 1, dso2ng × 1).

Composition

Fixed (10)

PR Author LOC Closes
#2244 franksong2702 +59/-1 #2243
#2249 franksong2702 +97/-0 #2248
#2241 dso2ng +181/-12
#2250 franksong2702 +140/-34 refs #1880
#2253 franksong2702 +56/-0
#2255 franksong2702 +25/-3 #2254
#2257 franksong2702 +16/-17
#2259 franksong2702 +6/-0 #2258
#2234 Jordan-SkyLF +158/-51 (post-v0.51.61 rebase)

Added (1)

PR Author LOC Closes
#2238 franksong2702 +151/-43 #2231

Docs (1)

PR Author LOC Closes
#2251 franksong2702 +311/-262 refs #1925

Highlights

Stage-355 maintainer fixes

Conflict resolution

tests/test_metadata_save_wipe_1558.py + CHANGELOG.md on #2249 merge — both #2244 and #2249 added tests at the same EOF insertion point and CHANGELOG entries. Kept both (#2244=archive test, #2249=parametrized pin/rename/personality test) since they cover complementary routes.

CHANGELOG.md cleanup — Previous v0.51.60 (stage-353) section in master had a stray "Phone-width layouts (refs #2231)" bullet that actually belongs to #2238 (this stage). Dropped from v0.51.60. Previous Unreleased section was polluted with stage-354 entries (#2228, old #2234 portion, #2236) mixed with stage-355 entries; rebuilt cleanly with proper v0.51.61 closing + new Unreleased.

Inconsistent style noted (non-blocking)

#2244 vs #2249 archive route#2244 uses an inline fix at /api/session/archive, #2249 uses a _ensure_full_session_before_mutation() helper on the other 3 routes. Functionally equivalent for archive's hot path (the cache replacement is idempotent since the key already exists). Will file a follow-up issue to refactor archive → helper.

Verification

  • Targeted pytest (12 PR surfaces): 205/205 pass in 9.4s
  • Full pytest: exit 0
  • run-browser-tests.sh: 20/20 QA + 11/11 API checks PASSED in 104s
  • Live UI smoke on 8789: zero JS errors; all PR surfaces verified live
  • Phase 5 strict merge-marker check: zero markers
  • Python + JS syntax: clean across all 35 modified files
  • CI on each constituent PR (latest SHA): 3/3 SUCCESS

Opus Advisor Review

SHIP all 11. No blockers.

Opus directly verified:

Two non-blocker follow-ups Opus surfaced (will file after merge)

  1. Refactor /api/session/archive to use _ensure_full_session_before_mutation (cosmetic — functionally equivalent today).
  2. fix: use documented aux model for update summaries #2234 _split_summary_category regex — only recognizes notice/worth knowing/worth/note/what you'll notice/users will notice. If LLM emits Caveat: or Important:, those bullets are silently dropped (the fallback only fires when notice_items is empty). Worth broadening the regex or falling through unrecognized prefixes into a notice bullet.

Closes / refs

Stats

35 files changed, 1186 insertions(+), 421 deletions(-) + 1 maintainer commit (CHANGELOG cleanup)

Frank Song and others added 27 commits May 14, 2026 15:16
Keep distinct generated summary categories, route update-summary generation through the configured auxiliary model first, disclose capped large-range summary input, and constrain long summary panels.
[codex] Harden update-link git fixture (franksong2702, closes #2258)
[codex] Fix start.sh dotenv filtering load (franksong2702)

# Conflicts:
#	CHANGELOG.md
[codex] Escape model picker display text (franksong2702, closes #2254)

# Conflicts:
#	CHANGELOG.md
docs(runtime): codify #1925 adapter contract and migration gates (franksong2702)
[codex] Show skill detail API errors (franksong2702)

# Conflicts:
#	CHANGELOG.md
[codex] Fix blank skill detail views (franksong2702, refs #1880)

# Conflicts:
#	CHANGELOG.md
Fix Archive Session for metadata-only cache hits (franksong2702, fixes #2243)

# Conflicts:
#	CHANGELOG.md
Fix metadata-only cache hits in session mutation routes (franksong2702, fixes #2248)

# Conflicts:
#	CHANGELOG.md
#	tests/test_metadata_save_wipe_1558.py
Improve phone sidebar panel navigation (franksong2702, fixes #2231)
fix: reconcile stale sidebar display titles (dso2ng)

# Conflicts:
#	CHANGELOG.md
fix: refine update summary category handling (Jordan-SkyLF, post-v0.51.61 rebase)

# Conflicts:
#	CHANGELOG.md
…ed for 11-PR stage-355; clean up v0.51.60 (drop misattributed Phone bullet, which actually shipped in stage-355 as #2238)
@nesquena-hermes
nesquena-hermes merged commit 18297f3 into master May 14, 2026
3 checks passed
@nesquena-hermes
nesquena-hermes deleted the stage-355 branch May 14, 2026 15:45
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request May 14, 2026
… 0.51.62) (#470)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/nesquena/hermes-webui](https://github.com/nesquena/hermes-webui) | patch | `0.51.61` → `0.51.62` |

---

### Release Notes

<details>
<summary>nesquena/hermes-webui (ghcr.io/nesquena/hermes-webui)</summary>

### [`v0.51.62`](https://github.com/nesquena/hermes-webui/releases/tag/v0.51.62)

[Compare Source](nesquena/hermes-webui@v0.51.61...v0.51.62)

##### What's Changed

- stage-355: 11-PR full sweep batch — metadata-only cache hit fixes + skill detail fix + phone UX + escaping + display-title projection + RFC update + test fixture hardening by [@&#8203;nesquena-hermes](https://github.com/nesquena-hermes) in [#&#8203;2263](nesquena/hermes-webui#2263)
- Improve phone sidebar panel navigation by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2238](nesquena/hermes-webui#2238)
- fix: reconcile stale sidebar display titles by [@&#8203;dso2ng](https://github.com/dso2ng) in [#&#8203;2241](nesquena/hermes-webui#2241)
- Fix Archive Session for metadata-only cache hits by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2244](nesquena/hermes-webui#2244)
- Fix metadata-only cache hits in session mutation routes by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2249](nesquena/hermes-webui#2249)
- \[codex] Fix blank skill detail views by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2250](nesquena/hermes-webui#2250)
- docs(runtime): codify [#&#8203;1925](nesquena/hermes-webui#1925) adapter contract and migration gates by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2251](nesquena/hermes-webui#2251)
- \[codex] Show skill detail API errors by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2253](nesquena/hermes-webui#2253)
- \[codex] Escape model picker display text by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2255](nesquena/hermes-webui#2255)
- \[codex] Fix start.sh dotenv filtering load by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2257](nesquena/hermes-webui#2257)
- \[codex] Harden update-link git fixture by [@&#8203;franksong2702](https://github.com/franksong2702) in [#&#8203;2259](nesquena/hermes-webui#2259)

**Full Changelog**: <nesquena/hermes-webui@v0.51.61...v0.51.62>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/470
SysAdminDoc pushed a commit to SysAdminDoc/hermes-webui that referenced this pull request Jun 26, 2026
stage-355: 11-PR full sweep batch — metadata-only cache hit fixes + skill detail fix + phone UX + escaping + display-title projection + RFC update + test fixture hardening
bernyforce pushed a commit to bernyforce/hermes-webui that referenced this pull request Jul 29, 2026
stage-355: 11-PR full sweep batch — metadata-only cache hit fixes + skill detail fix + phone UX + escaping + display-title projection + RFC update + test fixture hardening
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.

3 participants