Commit Graph

2179 Commits

Author SHA1 Message Date
nesquena-hermes e5ca59bc8f Merge pull request #2267 from nesquena/stage-356
stage-356: small 2-PR follow-up batch — #2234 aux-model routing + #2265 mixed-case provider canonicalization (closes #2245)
v0.51.63
2026-05-14 09:24:23 -07:00
Hermes Agent d5accbf92d docs: CHANGELOG stage-356 — close v0.51.62 (stage-355), open Unreleased for 2-PR stage-356 (#2234 post-rebase aux-model + #2265 mixed-case provider key fix) 2026-05-14 16:10:43 +00:00
Hermes Agent 8a13ebd2e2 Merge pull request #2265 into stage-356
Fix configured provider models after key canonicalization (Michaelyklam, closes #2245)
2026-05-14 16:09:28 +00:00
Hermes Agent 8eb310d975 Merge pull request #2234 into stage-356
fix: use documented aux model for update summaries (Jordan-SkyLF, post-rebase)
2026-05-14 16:09:26 +00:00
Michael Lam d246bf2654 fix: canonicalize configured provider model lookup 2026-05-14 09:05:13 -07:00
Jordan SkyLF 339e62528f fix: use documented aux model for update summaries 2026-05-14 08:50:13 -07:00
nesquena-hermes 18297f3aff Merge pull request #2263 from nesquena/stage-355
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
v0.51.62
2026-05-14 08:43:28 -07:00
Hermes Agent afba7169bb docs: CHANGELOG stage-355 — close v0.51.61 (stage-354), open Unreleased for 11-PR stage-355; clean up v0.51.60 (drop misattributed Phone bullet, which actually shipped in stage-355 as #2238) 2026-05-14 15:16:53 +00:00
Hermes Agent 29c166d813 Merge pull request #2234 into stage-355
fix: refine update summary category handling (Jordan-SkyLF, post-v0.51.61 rebase)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:15:09 +00:00
Hermes Agent 9370c483c3 Merge pull request #2241 into stage-355
fix: reconcile stale sidebar display titles (dso2ng)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:15:07 +00:00
Hermes Agent 673a927975 Merge pull request #2238 into stage-355
Improve phone sidebar panel navigation (franksong2702, fixes #2231)
2026-05-14 15:15:06 +00:00
Hermes Agent da1ea52143 Merge pull request #2249 into stage-355
Fix metadata-only cache hits in session mutation routes (franksong2702, fixes #2248)

# Conflicts:
#	CHANGELOG.md
#	tests/test_metadata_save_wipe_1558.py
2026-05-14 15:14:50 +00:00
Hermes Agent 8f2bb77cc5 Merge pull request #2244 into stage-355
Fix Archive Session for metadata-only cache hits (franksong2702, fixes #2243)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:47 +00:00
Hermes Agent 116167ce00 Merge pull request #2250 into stage-355
[codex] Fix blank skill detail views (franksong2702, refs #1880)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:46 +00:00
Hermes Agent 6f5f5edb56 Merge pull request #2253 into stage-355
[codex] Show skill detail API errors (franksong2702)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:44 +00:00
Hermes Agent 46455e2d6f Merge pull request #2251 into stage-355
docs(runtime): codify #1925 adapter contract and migration gates (franksong2702)
2026-05-14 15:13:42 +00:00
Hermes Agent 1fbb2d6ce9 Merge pull request #2255 into stage-355
[codex] Escape model picker display text (franksong2702, closes #2254)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:41 +00:00
Hermes Agent e1198e9e18 Merge pull request #2257 into stage-355
[codex] Fix start.sh dotenv filtering load (franksong2702)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:39 +00:00
Hermes Agent 90a7fedfb2 Merge pull request #2259 into stage-355
[codex] Harden update-link git fixture (franksong2702, closes #2258)
2026-05-14 15:13:37 +00:00
Frank Song 6cac6624f9 Harden update link git fixture 2026-05-14 23:07:14 +08:00
Frank Song d93903eddb Fix start.sh dotenv filtering load 2026-05-14 23:05:35 +08:00
Frank Song 0461b97d15 Escape model picker display text 2026-05-14 23:03:48 +08:00
Frank Song a56ec43d29 Show skill detail API errors 2026-05-14 22:57:15 +08:00
Frank Song 5ba5551d05 Clarify runtime adapter replay gates 2026-05-14 22:42:15 +08:00
Frank Song 93de0d8c31 Add skill detail screenshot evidence 2026-05-14 22:35:02 +08:00
Frank Song b2b38354db Update runtime adapter RFC gates 2026-05-14 22:34:51 +08:00
Frank Song ae8658affa Fix blank skill detail views 2026-05-14 22:28:20 +08:00
Frank Song 0042126473 Fix metadata-only session mutation routes 2026-05-14 22:16:53 +08:00
Dennis Soong a145bf4364 fix: apply display titles in content search 2026-05-14 21:10:50 +08:00
Frank Song 2b537ffa1b Fix archive metadata-only session reload 2026-05-14 19:31:25 +08:00
Frank Song 35309760ae test: couple mobile safe-area contract to viewport fit 2026-05-14 18:09:21 +08:00
Dennis Soong 143d9d8ef7 fix: reconcile stale sidebar display titles 2026-05-14 16:18:53 +08:00
Jordan SkyLF a291ffdde6 fix: refine update summary category handling
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.
2026-05-14 01:07:47 -07:00
nesquena-hermes 5677b12a88 Merge pull request #2239 from nesquena/stage-354
stage-354: 3-PR contributor batch — #2228 profile model picker + #2234 update-banner cleanup + #2236 silent-failure detection scope fix
v0.51.61
2026-05-14 00:39:30 -07:00
Hermes Agent be32c8311f docs: CHANGELOG stage-354 — close v0.51.60 (stage-353), open Unreleased for 3-PR stage-354 2026-05-14 07:17:03 +00:00
Frank Song 6beb59d61f Improve mobile sidebar panel navigation 2026-05-14 15:16:33 +08:00
Hermes Agent b8e9951492 Merge pull request #2236 into stage-354
fix: silent failure detection scans only new messages (jasonjcwu)
2026-05-14 07:15:16 +00:00
Hermes Agent efad585b86 Merge pull request #2228 into stage-354
Add model picker to profile creation (franksong2702, refs #749)
2026-05-14 07:15:14 +00:00
Hermes Agent b7cc53108a Merge pull request #2234 into stage-354
fix: clean up update summaries and banner wrapping (Jordan-SkyLF)
2026-05-14 07:15:13 +00:00
Jordan SkyLF afbcc9a6d5 fix: wrap update banner on mobile 2026-05-13 23:51:48 -07:00
fxd-jason 1e80b51560 fix: align usage-overwrite test FakeAgent with real agent message format
The FakeAgent in test_issue1857_usage_overwrite returned only 2 messages
(user + assistant) without the conversation history. The real agent always
returns the full history plus new messages. This mismatch caused the new
_has_new_assistant_reply helper (which checks only messages beyond the
pre-turn offset) to see len(result)==len(prev) and incorrectly flag the
turn as a silent failure.

Fix: prepend conversation_history to the FakeAgent's response so the
message list mirrors production behavior.
2026-05-14 14:48:08 +08:00
fxd-jason 120ec5eba2 fix: silent failure detection scans only new messages, not full history
When a provider error (401/429/rate-limit) causes the agent to return
without producing a new assistant reply, the WebUI should emit an
apperror event so the user sees an inline error. However, the detection
logic scanned ALL messages in result['messages'] — which includes the
full conversation history. If any prior turn had an assistant response,
_assistant_added would be True and the apperror would be silently
skipped, leaving the user staring at a blank response.

Extract a helper _has_new_assistant_reply(all_messages, prev_count)
that only inspects messages beyond the pre-turn history offset. Apply
it to both the main detection path and the self-heal/retry path.

Tests: 15 new cases covering history masking, empty content, whitespace,
edge-case shrinks, and multi-assistant scenarios.
2026-05-14 14:34:19 +08:00
Jordan SkyLF 62eb703dcf fix: avoid duplicate update summary bullets 2026-05-13 22:54:45 -07:00
Frank Song 8b30ade923 Add profile creation model picker 2026-05-14 12:13:49 +08:00
nesquena-hermes a17d75431c Merge pull request #2229 from nesquena/stage-353
stage-353: overlapping Appearance PRs + critical compression-rotation data-loss fix — #2227 (closes #2223) + #2222 (markup) + #2225 (Extra Large font)
v0.51.60
2026-05-13 21:12:01 -07:00
Hermes Agent 6bf2012244 docs: CHANGELOG note for stage-353 Opus SHOULD-FIX on #2227 parent_session_id 2026-05-14 04:08:46 +00:00
Hermes Agent 3d34a72ee8 stage-353: apply Opus SHOULD-FIX — unconditional parent_session_id stamp on compression rotation
Opus identified that PR #2227's preservation block had two related bugs in
the parent_session_id handling:

1. During preservation save: code did
     _old_parent = s.parent_session_id
     s.parent_session_id = None
     s.save(touch_updated_at=False, skip_index=True)
     s.parent_session_id = _old_parent
   The save persisted parent=None to disk. The in-memory restoration didn't
   reach the disk copy. Result: a /branch fork session that subsequently
   compressed lost its 'Forked from X' badge on the preserved old snapshot.

2. Stamping the continuation: code did
     if not s.parent_session_id:
         s.parent_session_id = old_sid
   The 'if not' guard skipped the stamp when the session already had a
   parent_session_id from a prior fork. Result: fork-of-fork compression
   broke lineage — the continuation jumped back to the original fork parent
   instead of the just-preserved immediate predecessor snapshot.

Fix (matches Opus's recommendation):
  - Remove the parent clearing during preservation save (preserve as-is)
  - Drop the 'if not' guard; always stamp continuation to old_sid

This makes the lineage chain consistent: new → old → old.parent → ... root.
Traversal from the continuation always walks through the just-preserved
snapshot to get to its parent's parent, never jumping over the snapshot.

Two new regression tests pin both invariants:
  - test_parent_session_id_stamped_unconditionally (no 'if not' guard)
  - test_old_session_parent_preserved_during_archive_save (no parent=None)

Both pass against the fix. All 8 tests in the file pass.
2026-05-14 03:59:02 +00:00
Hermes Agent ccfa3b2081 docs: CHANGELOG stage-353 — close v0.51.59 (stage-352), open Unreleased for 3-PR stage-353; also drop duplicate #2219 entry from v0.51.58 section (it shipped in stage-352/v0.51.59, not stage-351) 2026-05-14 03:45:31 +00:00
Hermes Agent bfb62abe35 Merge pull request #2225 into stage-353
Add extra-large Appearance font size option (franksong2702)
2026-05-14 03:43:52 +00:00
Hermes Agent 5a447604b6 Merge pull request #2227 into stage-353
fix: preserve session history during compression rotation (theh4v0c, closes #2223 — critical data-loss)
+ duplicate Appearance label-markup fix overlapping with #2222

Conflict resolution:

(1) static/index.html line ~896 — PR #2222 and PR #2227 both fix the same
    endless-scroll checkbox label issue with different structures.
    - #2222 (HEAD): wraps the input+span in an in-place <label> inside the
      shared session-jump settings-field div.
    - #2227 (incoming): closes the existing settings-field, opens a NEW
      settings-field for endless-scroll, then wraps in <label>. Strictly
      better — each preference owns its own settings-field, matching the
      rest of the Settings → Appearance layout.

    Adopted #2227's structural variant. Regression test
    test_session_endless_scroll.py was updated by #2222 to match the new
    structure and passes against the resolved markup.

(2) CHANGELOG.md — both PRs added a Fixed entry. Merged both attributions,
    leading with the critical #2223 data-loss fix from #2227 (immutable
    pre-compression archive + parent_session_id lineage stamping) and
    noting that the maintainer chose #2227's structural variant for the
    label-markup overlap.

11/11 tests pass across test_session_endless_scroll.py +
test_issue2223_compression_no_rename.py after resolution.
2026-05-14 03:43:45 +00:00