Commit Graph
3424 Commits
Author SHA1 Message Date
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