Commit Graph

4523 Commits

Author SHA1 Message Date
nesquena-hermes f040d2a047 release: v0.51.511 — virtual transcript renders during programmatic scrolls (#4468)
Fixes a regression from #4434 (v0.51.500). Author (rodboev) gave explicit
go-ahead. Gated earlier: Codex SAFE + Opus SAFE + browser-smoke + suite.

Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4468
2026-06-19 04:36:39 +00:00
nesquena-hermes 0498e0e345 Merge pull request #4471 from nesquena/release/stage-4453
Release v0.51.510 — RU (Kanban task workspace + dependency controls, #4453)
v0.51.510
2026-06-18 21:27:39 -07:00
nesquena-hermes e480adae66 release: v0.51.510 — Kanban task workspace + dependency controls (#4453, #3797)
Maintainer fixes on top of the contributor PR: dependency direction, XSS-safe
ID encoding, dark-theme dependency input + task-autocomplete datalist,
self-dep guard, i18n backfill. Remaining parity gaps tracked in #4470.

Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4453
Closes #3797
2026-06-19 04:24:16 +00:00
nesquena-hermes 43580f9490 i18n: backfill kanban_dependency_self across all locales (locale-parity) 2026-06-19 04:16:50 +00:00
nesquena-hermes 76770425f4 fix(#4453): correct dependency direction, JS-context-encode IDs (XSS), dark-theme the dependency input + datalist autocomplete, reject self-dep 2026-06-19 04:05:15 +00:00
nesquena-hermes 4a52fe728a Merge commit 'refs/pull/4453/head' of github.com:nesquena/hermes-webui into review/4453 2026-06-19 03:55:18 +00:00
nesquena-hermes 17afa0b4bd Merge pull request #4466 from nesquena/release/stage-4456b
Release v0.51.509 — RT (gateway-cant-do-approvals notice, #4456)
v0.51.509
2026-06-18 20:17:23 -07:00
nesquena-hermes 46f234f4fa release: v0.51.509 — notice when connected gateway can't do approvals (#4456, #4300)
Includes a showToast arg-order fix (4000ms,'warning') caught at gate.

Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4456
2026-06-19 03:14:08 +00:00
nesquena-hermes 0ebb1e2ea7 Merge pull request #4464 from nesquena/release/stage-4448
Release v0.51.508 — RS (/model command works under reverse-proxy subpath, #4448)
v0.51.508
2026-06-18 20:06:26 -07:00
nesquena-hermes 6a7c18fc6d release: v0.51.508 — /model command works under reverse-proxy subpath (#4448)
Co-authored-by: tomtong2015 <tomtong2015@users.noreply.github.com>

Closes #4448
2026-06-19 03:02:29 +00:00
nesquena-hermes 779da64e50 Merge commit 'refs/pull/4448/head' of github.com:nesquena/hermes-webui into release/stage-4448 2026-06-19 02:54:51 +00:00
nesquena-hermes d5e6a36a44 Merge pull request #4463 from nesquena/release/stage-4455
Release v0.51.507 — RR (jump-to-question button stays usable on mobile, #4455)
v0.51.507
2026-06-18 19:51:44 -07:00
nesquena-hermes a0c5a92706 release: v0.51.507 — jump-to-question button stays usable on mobile (#4455, #3851)
Verified at 390px: icon (arrow) stays visible, text label hidden, button not cut off.

Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4455
Closes #3851
2026-06-19 02:48:22 +00:00
nesquena-hermes 26c5415660 Merge commit 'refs/pull/4455/head' of github.com:nesquena/hermes-webui into release/stage-4455 2026-06-19 02:28:37 +00:00
nesquena-hermes 42fbc67b82 Merge pull request #4462 from nesquena/release/stage-3879c
Release v0.51.506 — RQ (harden destructive workspace Git paths against repo-local execution, #3879)
v0.51.506
2026-06-18 19:18:03 -07:00
nesquena-hermes fa92baa63d release: v0.51.506 — harden destructive workspace Git paths vs repo-local execution (#3879, #3777)
6-round RCE-class security hardening, converged. Codex SAFE (live exploit probes) + Opus SAFE (flag-off-reachability enumeration) + full suite 9508 on the byte-identical gated head. Nathan signed off.

Co-authored-by: Rod Boev <rod.boev@gmail.com>

Closes #3879
Closes #3777
2026-06-19 02:14:13 +00:00
nesquena-hermes 9e79fc3697 Merge pull request #4460 from nesquena/release/stage-4420b
Release v0.51.505 — RP (allow macOS Mail message: links in chat markdown, #4420)
v0.51.505
2026-06-18 19:01:59 -07:00
nesquena-hermes f94508994f release: v0.51.505 — allow macOS Mail message: links in chat markdown (#4420, #4319)
Co-authored-by: bergeouss <bergeouss@users.noreply.github.com>

Closes #4420
Closes #4319
2026-06-19 01:58:28 +00:00
nesquena-hermes 4a91b36c09 Merge pull request #4459 from nesquena/release/stage-4440b
Release v0.51.504 — RO (group OpenRouter/Nous models by vendor in model picker, #4440)
v0.51.504
2026-06-18 18:56:53 -07:00
nesquena-hermes eeee30fc6e release: v0.51.504 — group OpenRouter/Nous models by vendor in model picker (#4440)
Browser-stress-tested end-to-end (collapse parent/sub, search filter+restore,
select-from-subgroup, flat single-vendor rows) — Nathan approved from screenshots.

Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4440
2026-06-19 01:41:09 +00:00
nesquena-hermes b3a848967e Merge commit 'refs/pull/4440/head' of github.com:nesquena/hermes-webui into release/stage-4440b 2026-06-19 01:31:54 +00:00
nesquena-hermes 671e929867 Merge pull request #4458 from nesquena/release/stage-4441b
test: cover archived webhook session projections (#4441)
2026-06-18 18:26:57 -07:00
nesquena-hermes d5c71c6f2d test: cover archived webhook session projections (#4441)
Test-only coverage extension (extends #4385 to the webhook source); no version bump.

Co-authored-by: santastabber <santastabber@users.noreply.github.com>

Closes #4441
2026-06-19 01:21:34 +00:00
nesquena-hermes 045874d2b5 Merge commit 'refs/pull/4441/head' of github.com:nesquena/hermes-webui into release/stage-4441b 2026-06-19 01:21:22 +00:00
nesquena-hermes 9c484b1bad Merge pull request #4457 from nesquena/release/stage-4439b
Release v0.51.503 — RN (process-wakeup turns no longer render as user messages, #4439)
v0.51.503
2026-06-18 18:19:43 -07:00
nesquena-hermes 0fa0c39d58 release: v0.51.503 — process-wakeup turns no longer render as user messages (#4439, #4373)
Co-authored-by: Rod Boev <rod.boev@gmail.com>

Closes #4439
Closes #4373
2026-06-19 01:12:33 +00:00
nesquena-hermes b28ef26d15 harden: clear pending_user_source on the compression-snapshot load branch too (Opus symmetry nit) 2026-06-19 01:05:01 +00:00
nesquena-hermes 7827297011 Merge commit 'refs/pull/4439/head' of github.com:nesquena/hermes-webui into release/stage-4439b 2026-06-19 00:55:13 +00:00
Rod Boev aed7da07e9 fix(kanban): skip workspace validation in edit mode (#3797) 2026-06-18 20:51:17 -04:00
Rod Boev 7fb58478bf fix(kanban): correct parent/child inversion in dependency removal (#3797) 2026-06-18 20:36:33 -04:00
Rod Boev cb812a0aae fix(i18n): add missing kanban keys to zh, zh-Hant, fr, tr, pl (#3797) 2026-06-18 20:30:55 -04:00
Rod Boev 14c098e996 fix(tests): remove bs4 dependency and unused imports (#3797) 2026-06-18 20:21:18 -04:00
Rod Boev 8f83a11225 fix(tests): scope span:last-child assertion to mobile media query (#3851) 2026-06-18 20:17:25 -04:00
Rod Boev a3c1647afb fix(kanban): correct dependency endpoint and payload field names (#3797) 2026-06-18 20:06:38 -04:00
Rod Boev 2264c5aff9 fix(tests): correct mobile CSS assertions to match refactored styling (#3851) 2026-06-18 20:03:16 -04:00
Rod Boev 32c8fa0626 fix(chat): keep jump-to-question visible on mobile (#3851) 2026-06-18 19:48:53 -04:00
Rod Boev 947b770a57 feat(kanban): add task workspace and dependency controls (#3797) 2026-06-18 19:48:47 -04:00
nesquena-hermes c3041277d3 Merge pull request #4446 from nesquena/fix/test-flakes
Release v0.51.502 — RL (visibility toggle invalidates sidebar cache + de-flake node test timeouts)
v0.51.502
2026-06-18 16:17:19 -07:00
nesquena-hermes af5fc4ff5e docs: note title-only UPDATE fallback gap in fingerprint comment (Opus/Codex follow-up) 2026-06-18 22:58:30 +00:00
nesquena-hermes d5ccaf0c27 fix(perf): fingerprint reads read-only + index-only MAX(rowid), no table scan / no lock stall (Codex gate)
Codex CORE findings on the fingerprint: (1) default busy timeout could stall
/api/sessions ~10s on a locked state.db; (2) COUNT(*) forced a full messages
table SCAN (~16-22ms/refresh on 200k rows). Fix: open file:...?mode=ro with
timeout=0.05 + PRAGMA busy_timeout=50 (returns fast, falls back to stat stamp on
lock), and use index-only MAX(rowid) per table (no COUNT, no scan). Verified:
EXPLAIN shows SEARCH not SCAN, 0.36ms on 200k msgs, 0.16ms while EXCLUSIVE-locked.
Fingerprint shape is now (sessions_max_rowid, messages_max_rowid); regression
tests updated.
2026-06-18 22:53:58 +00:00
nesquena-hermes f8d5ad2b1e fix(sessions): commit-reliable state.db content fingerprint in cache keys (real flake root cause)
Codex root-cause consult confirmed: the CLI-session cache (_CLI_SESSIONS_CACHE,
5s TTL) and session-list cache were keyed on (st_mtime_ns, st_size) of state.db
+ WAL sidecars. Under WAL-mode writes those stamps collide (same mtime-ns bucket
+ WAL frame size after checkpoint), serving a stale cache -> freshly-committed
gateway/CLI session intermittently absent from /api/sessions (the recurring
test_gateway_sync flake AND a real up-to-5s sidebar delay for gateway writes).

PRAGMA data_version is NOT usable here (fresh per-request connection always
reports its own initial value, never advances — verified). Fix = a cheap
content fingerprint (COUNT/MAX(rowid) over sessions+messages) read on a fresh
connection, which DOES advance on every commit and is immune to mtime
granularity. Wired into _sqlite_file_stat_cache_key (models) + the routes-layer
source stamp. + 3 regression tests + corrected the earlier false root-cause
comments.
2026-06-18 22:48:07 +00:00
Rod Boev b09796375f Keep process-wakeup tags through cancel and recovery paths 2026-06-18 18:33:29 -04:00
nesquena-hermes 1cc90e2955 fix: also invalidate session-list cache on show_previous_messaging_sessions toggle (Codex gate)
Codex completeness finding: show_previous_messaging_sessions is a third
visibility setting in the /api/sessions cache key (bypasses messaging dedupe)
with the same stale-cache bug. Added it to the invalidation tuple.
2026-06-18 22:25:32 +00:00
Rod Boev 2053825d74 fix(#4373): keep process-wakeup source on settled transcript rows 2026-06-18 18:21:10 -04:00
nesquena-hermes 7c21fe4a93 fix(sessions): invalidate session-list cache on CLI-visibility toggle + de-flake node test timeouts
ROOT FIX (product bug): POST /api/settings never invalidated the session-list
cache, so toggling show_cli_sessions/show_cron_sessions could serve a stale
sidebar for up to the cache TTL when the settings-file mtime stamp collided with
a cached entry. The handler now clears the cache directly on those toggles. This
is also the root cause of the recurring test_gateway_sync CI flake (session
absent from /api/sessions right after the visibility toggle).

DEFENSE-IN-DEPTH: cleanup_test_sessions fixture now resets show_cli_sessions to
default BEFORE each test too, not only in teardown.

FLAKE FIX (test infra): bump 31 node-subprocess correctness-harness timeouts from
10s -> 30s across 23 test files. Node spawn + V8 warmup under parallel CI shard
load can exceed 10s, causing TimeoutExpired flakes (e.g. test_1325 on #4445).
Only real node subprocess.run() sites changed — mock signatures, HTTP urlopen,
and deliberate timeout-behavior tests (test_api_timeout, timeout=0/1/2) untouched.
2026-06-18 22:21:03 +00:00
nesquena-hermes b26c184bf5 Merge pull request #4445 from nesquena/release/stage-4438
Release v0.51.501 — RK (Ctrl/Cmd+, opens Settings, #4438)
v0.51.501
2026-06-18 14:49:28 -07:00
Tom Tong fcc6a253b5 frontend: subpath-safe fetch() in /model command
cmdModel() had the only two root-absolute fetch('/api/...') calls left in the
frontend. Under a reverse proxy that mounts the app at a subpath (e.g.
jupyter-server-proxy at /proxy/<port>/), a root-absolute path escapes the mount
and 404s, so /model can't load the catalog or update the session. Resolve both
against document.baseURI (falling back to location.href) like every other fetch
in the frontend already does.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 21:44:43 +00:00
nesquena-hermes c5cb0baede release: v0.51.501 — Ctrl/Cmd+, opens Settings (#4438, #4391)
Co-authored-by: rodboev <rodboev@users.noreply.github.com>

Closes #4438
Closes #4391
2026-06-18 21:36:17 +00:00
nesquena-hermes 02834ecb95 Merge commit 'refs/pull/4438/head' of github.com:nesquena/hermes-webui into release/stage-4438 2026-06-18 21:35:49 +00:00
nesquena-hermes fee8993332 Merge pull request #4444 from nesquena/release/stage-4434b
Release v0.51.500 — RJ (fix stuck-scroll on long sessions with dense tool blocks, #4434)
v0.51.500
2026-06-18 14:31:33 -07:00