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