ai-ag2026
09d2f4be2f
fix: exclude hidden snapshots from pin quota
2026-05-30 11:48:57 +02:00
nesquena-hermes
7dc4273a21
Merge pull request #3168 from nesquena/release/stage-batch53
...
Release v0.51.171 — Release EQ (stage-batch53: tool-output badge #2867 + Neon opt-in skin)
2026-05-29 21:38:36 -07:00
nesquena-hermes
5d73101c8e
test: make .send-btn / .app-titlebar global-selector finders skin-variant-aware ( #3164 Neon uses :root.dark[data-skin=])
2026-05-30 04:32:18 +00:00
Hermes Agent
a7c871d45e
feat: add Neon cyberpunk skin
...
Cyberpunk-inspired dark-first skin with neon purple (#B347FF) accent
and cyan (#00DDFF) highlights. Full palette for both light and dark
modes with component-level overrides (glow effects, purple scrollbars,
tool cards, tree viewer, session badges, MCP status indicators).
- static/style.css: 37 CSS rules (light + dark palette + components)
- static/boot.js: Neon entry in _SKINS array
- static/index.html: neon:1 in skin allowlist
Follows the existing skin pattern (modeled after Nous).
2026-05-30 04:24:15 +00:00
AJV20
d34d11821b
fix: label tool output cards persistently
2026-05-30 04:24:15 +00:00
nesquena-hermes
0fc38cecf8
Merge pull request #3167 from nesquena/release/stage-batch52
...
Release v0.51.170 — Release EP (stage-batch52: run-aware SSE replay cursors #3124 )
2026-05-29 21:16:41 -07:00
AJV20
5cb82f9da4
fix: make SSE replay cursors run-aware
2026-05-30 04:09:20 +00:00
nesquena-hermes
d37e57f1ea
Merge pull request #3165 from nesquena/release/stage-batch51
...
Release v0.51.169 — Release EO (stage-batch51: skill-toggle profile scoping #3066 + update-tag filter #3140 + Docker docs)
2026-05-29 20:54:34 -07:00
nesquena-hermes
d032653a97
test( #3066 ): mark profile-skill tests requires_agent_modules (skill_utils import unavailable in CI)
2026-05-30 03:51:13 +00:00
AJV20
fbc0742621
fix: ignore release tags already contained by head
2026-05-30 03:37:12 +00:00
AJV20
7efb4c5acb
fix: scope skill toggles to active profile
2026-05-30 03:36:09 +00:00
AJV20
f50763b3d2
docs: clarify docker host and home paths
2026-05-30 03:35:24 +00:00
nesquena-hermes
e8e93ad98c
Merge pull request #3163 from nesquena/fix-3162
...
Release v0.51.168 — Release EN (hotfix #3162 : mobile 'Failed to load conversation messages' + JS runtime-lint guard)
2026-05-29 20:31:14 -07:00
nesquena-hermes
e5b31caee1
fix( #3162 ): const→let in _ensureMessagesLoaded (brick-class mobile TypeError) + ESLint runtime-error guard
...
The #3018 carry-forward reassigns msgs but it was declared const, throwing a
TypeError that surfaced as 'Failed to load conversation messages' on every mobile
message (v0.51.161-166). Change to let.
Adds a static JS runtime-error lint guard (eslint.runtime-guard.config.mjs +
tests/test_static_js_runtime_lint.py) using no-const-assign/no-import-assign — the
exact class node --check and source-presence tests miss. Dev-only dependency; app
stays pure Python + vanilla JS.
2026-05-30 03:24:41 +00:00
nesquena-hermes
9cd7729915
Merge pull request #3161 from nesquena/release/stage-batch49
...
Release v0.51.167 — Release EM (stage-batch49: iOS-style swipe actions for touch devices #2252 )
2026-05-29 20:10:17 -07:00
nesquena-hermes
6702805527
stage-batch49: CHANGELOG for v0.51.167 (Release EM)
2026-05-30 02:57:02 +00:00
nesquena-hermes
359a86cc4f
Merge PR #2252 (swipe actions for touch devices + session list FLIP) into stage-batch49
2026-05-30 02:56:40 +00:00
nesquena-hermes
6791b1d5d8
Merge PR #2252 (swipe actions for touch devices + session list FLIP) onto master — stripped out-of-scope version-badge/_dirty_suffix changes
2026-05-30 02:33:18 +00:00
nesquena-hermes
abe87b9b3e
Merge pull request #3156 from nesquena/release/stage-batch48
...
Release v0.51.166 — Release EL (stage-batch48: shared OpenCode runtime key #3145 + cron project-chip sessions #3134 )
2026-05-29 19:26:02 -07:00
nesquena-hermes
c2663f827a
Merge PR #3152 (keep agent cron sessions in project chips, #3134 ) into stage-batch48
...
# Conflicts:
# CHANGELOG.md
2026-05-30 02:19:28 +00:00
nesquena-hermes
798ca584c6
Merge PR #3150 (honor shared OpenCode key at runtime, closes #3145 ) into stage-batch48
2026-05-30 02:19:06 +00:00
AJV20
e68c670bba
fix: keep agent cron sessions in project chips
2026-05-30 02:18:51 +00:00
AJV20
d2686eaedb
fix: honor shared OpenCode key at runtime
2026-05-30 02:18:06 +00:00
nesquena-hermes
3005811200
Merge pull request #3153 from nesquena/release/stage-batch47
...
Release v0.51.165 — Release EK (stage-batch47: stop EventSource reconnect storm #3103 )
2026-05-29 19:15:40 -07:00
nesquena-hermes
5f0d7534db
stage-batch47: CHANGELOG for v0.51.165 (Release EK)
2026-05-30 02:09:01 +00:00
nesquena-hermes
728bf42efd
Merge PR #3128 (stop Connection: close on long-lived SSE streams) into stage-batch47
2026-05-30 02:08:37 +00:00
nesquena-hermes
2fc692f68b
test: pin #3103 — SSE event-stream handlers must not emit Connection: close (keep it for finite responses)
2026-05-30 02:08:37 +00:00
Sanjays2402
ab4de3bb64
Fix #3103 : stop emitting Connection: close on long-lived SSE streams
...
The gateway SSE handler (`_handle_gateway_sse_stream`) and session-events
SSE handler (`_handle_session_events_stream`) both set
`Connection: close` on the response. On long-lived SSE streams, browsers
(Chrome, Firefox, Safari) interpret that header as 'this is a one-shot
response, the EventSource lifecycle is over the moment the body ends'
and trigger an immediate reconnect when the server-side worker rotates.
The result, with EventSource's auto-reconnect on top, is a tight loop of
connect -> sessions_changed snapshot -> reconnect every ~1s that pegs
the worker, thrashes the session list, and prevents the in-app session
list from ever settling.
Removing the header lets the python BaseHTTPServer close the socket
naturally after the stream ends, which is what EventSource expects.
Regression introduced in 598fd4ff .
2026-05-30 02:02:40 +00:00
nesquena-hermes
832cf8e4be
Merge pull request #3151 from nesquena/release/stage-batch46
...
Release v0.51.164 — Release EJ (stage-batch46: passive performance hardening)
2026-05-29 19:01:22 -07:00
nesquena-hermes
a7848c884e
stage-batch46: CHANGELOG for v0.51.164 (Release EJ)
2026-05-30 01:54:52 +00:00
nesquena-hermes
938a58b0e1
Merge PR #3105 (passive performance hardening + bounded restart-safety wait) into stage-batch46
2026-05-30 01:53:39 +00:00
nesquena-hermes
694fdd1096
review-3105: bound _wait_until_restart_safe with 300s max-wait + execv fallback (Opus review — avoid self-update soft-jam on long runs)
2026-05-30 01:53:38 +00:00
AJV20
b53bc1a2ea
fix: harden webui passive performance paths
2026-05-30 01:39:54 +00:00
nesquena-hermes
e90ebd2394
Merge pull request #3149 from nesquena/release/stage-batch45
...
Release v0.51.163 — Release EI (stage-batch45: session duplicate/branch field propagation)
2026-05-29 18:37:35 -07:00
nesquena-hermes
315cca2ec7
stage-batch45: CHANGELOG for v0.51.163 (Release EI)
2026-05-30 01:26:21 +00:00
nesquena-hermes
71d0b1cb5e
Merge PR #3101 (session duplicate/branch field propagation) into stage-batch45
2026-05-30 01:26:00 +00:00
AlexeyDsov
da9211bf43
fix(session): copy all critical fields on duplicate and branch to prevent state loss
2026-05-30 01:19:50 +00:00
nesquena-hermes
24a266841a
Merge pull request #3148 from nesquena/release/stage-batch44
...
Release v0.51.162 — Release EH (stage-batch44: conversation-filter clear button + title-lang regression coverage)
2026-05-29 18:13:04 -07:00
nesquena-hermes
ed12948301
stage-batch44: CHANGELOG for v0.51.162 (Release EH)
2026-05-30 01:06:24 +00:00
ai-ag2026
e0c27174b3
test: cover code-only title language fallback
2026-05-30 01:06:04 +00:00
nesquena-hermes
01c63be969
Merge PR #3026 (clear button on conversation filter) into stage-batch44
2026-05-30 01:05:58 +00:00
george-andraws
28498aa988
fix: scope conversation filter clear search CSS
2026-05-30 00:52:29 +00:00
george-andraws
317d828cff
Add clear button to conversation filter
2026-05-30 00:52:29 +00:00
nesquena-hermes
cbc74e33b8
Merge pull request #3147 from nesquena/release/stage-batch43
...
Release v0.51.161 — Release EG (stage-batch43: 3-PR live-display fixes)
2026-05-29 17:50:01 -07:00
nesquena-hermes
3119ea8200
test: update rotate-url-sync completion_marker for #3018 _finishDone carry-forward
2026-05-30 00:43:37 +00:00
nesquena-hermes
7edd43549d
stage-batch43: extend #3018 carry-forward to _finishDone completion path (Opus review — most-frequent reproducer)
2026-05-30 00:39:54 +00:00
nesquena-hermes
49a16e5fc3
stage-batch43: CHANGELOG for v0.51.161 (Release EG)
2026-05-30 00:21:35 +00:00
nesquena-hermes
9059b8f5c3
Merge PR #3116 (stale unread + compression timer + tool-card dedup) into stage-batch43
2026-05-30 00:21:04 +00:00
nesquena-hermes
86d5d63593
Merge PR #3131 (preserve per-turn ephemeral fields) into stage-batch43
2026-05-30 00:20:58 +00:00
nesquena-hermes
02e8a6ca8d
Merge PR #3127 (jump-to-question on intermediate assistant msgs) into stage-batch43
2026-05-30 00:20:58 +00:00