Commit Graph

3108 Commits

Author SHA1 Message Date
nesquena-hermes 8bc3404932 Merge pull request #2989 from nesquena/release/stage-batch21
Release DK — stage-batch21 — 5-PR tier-2 batch (v0.51.139)
v0.51.139
2026-05-26 17:10:22 -07:00
nesquena-hermes eeff76bec7 stage-batch21: stamp v0.51.139 / Release DK 2026-05-27 00:07:03 +00:00
nesquena-hermes 485ad85203 stage-batch21: backfill CHANGELOG entry for #2954 (session index churn) 2026-05-27 00:03:31 +00:00
nesquena-hermes 80a9b0fa68 Merge pull request #2985
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:03:02 +00:00
nesquena-hermes f3fbb49ce4 Merge pull request #2983
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:02:47 +00:00
nesquena-hermes f061733c91 Merge pull request #2969
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:02:32 +00:00
nesquena-hermes 825288a590 Merge pull request #2967
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:02:09 +00:00
nesquena-hermes 272bfa9612 Merge pull request #2954 2026-05-27 00:01:54 +00:00
nesquena-hermes a6c65de2e8 Merge pull request #2988 from nesquena/release/stage-batch20
Release DJ — stage-batch20 — 7-PR ultra-safe batch (v0.51.138)
v0.51.138
2026-05-26 16:58:47 -07:00
nesquena-hermes 56ae08d9f2 stage-batch20: stamp v0.51.138 / Release DJ 2026-05-26 23:55:38 +00:00
nesquena-hermes 68abe36050 stage-batch20: backfill CHANGELOG entries for #2975 and #2982 2026-05-26 23:52:00 +00:00
nesquena-hermes c7e7029ab4 Merge pull request #2950
# Conflicts:
#	CHANGELOG.md
2026-05-26 23:51:39 +00:00
nesquena-hermes 12fb9cac7e Merge pull request #2948
# Conflicts:
#	CHANGELOG.md
2026-05-26 23:51:25 +00:00
nesquena-hermes cdc197aeec Merge pull request #2982 2026-05-26 23:51:10 +00:00
nesquena-hermes 9dc1c87cd8 Merge pull request #2949
# Conflicts:
#	CHANGELOG.md
2026-05-26 23:51:10 +00:00
nesquena-hermes de2ab4f5d3 Merge pull request #2975 2026-05-26 23:50:51 +00:00
nesquena-hermes ac64f5c7fc Merge pull request #2972
# Conflicts:
#	CHANGELOG.md
2026-05-26 23:50:51 +00:00
nesquena-hermes f89aa4458a Merge pull request #2960 2026-05-26 23:50:28 +00:00
ai-ag2026 815df9de76 fix: vendor math and yaml assets for CSP 2026-05-26 23:49:02 +02:00
george-andraws 65cae8f1a5 Improve sidebar chat search highlighting 2026-05-26 14:17:59 -07:00
xolom e210c4855c fix: include client addresses in webui request logs 2026-05-26 21:45:27 +02:00
Ed 9bb5842530 chore: address audit findings — module docstring + consistent section separators 2026-05-26 16:56:02 +02:00
Ed 38db6199b8 chore: clean up test_issue1894_provider_overlap — remove vestigial noqa, add docstrings 2026-05-26 16:56:02 +02:00
Ed e46072c699 fix: update opencode-go base_url in provider overlap tests
api.opencode.ai/v1 -> opencode.ai/zen/go/v1 (canonical per hermes_cli/auth.py)
2026-05-26 16:56:02 +02:00
dobby-d-elf b74df67726 Make session index pruning explicit 2026-05-26 07:43:16 -06:00
weiwei83 d0235b7f5a fix: remove dead #composerAttach selector (actual ID is #attachTray) 2026-05-26 21:29:18 +08:00
weiwei83 1c7dfc85b3 refactor: code review cleanup
- Rename _escHandler to _keyHandler (now handles nav keys too)
- Store counter reference (lb._counterEl) to avoid DOM query on every nav
- Remove dead 'let counter = null' and 'hasNav' closure variable
- Use lb._navImages directly in keyboard handler for consistency
- Add null guard on lb.querySelector('img') in _navigateLightbox
- Inline _updateLightboxCounter one-liner
- Fix CSS section comment 'Image lightbox close' → 'Image lightbox'
- Fix CHANGELOG placeholder (#PR → #2967)
2026-05-26 21:28:38 +08:00
weiwei83 84d0d56f53 refactor: address PR review — fix event listener churn and dead code
- _navigateLightbox now reads lb._navIndex / lb._navImages directly
  instead of receiving a closure-captured index and rebuilding the
  keyboard handler on every navigation. No more removeEventListener /
  addEventListener churn.
- Button onclick handlers also read the live lb._navIndex.
- Removed dead backward-compat string-type shim and its unused oldEl
  querySelector.
- Composer attach-tray chips now open single-image lightboxes (no
  sibling detection across staged uploads).
2026-05-26 21:21:30 +08:00
Frank Song 2ff73c9954 Document truncation watermark metadata intent 2026-05-26 20:13:01 +08:00
Michael Lam 1b05d6031e docs(runtime): define runner client backend gate 2026-05-26 04:06:12 -07:00
Frank Song 9db0d6869a fix: keep session switch metadata non-blocking 2026-05-26 16:40:35 +08:00
weiwei83 ecf7ca7c60 feat: add prev/next navigation to image lightbox
When multiple images appear in the same message, clicking any image
now opens a lightbox with prev/next navigation buttons (‹ / ›) and
keyboard support (← / →). An image counter (e.g. '3 / 5') is shown at
the bottom of the overlay.

- _openImgLightbox now receives the clicked <img> element to find
  sibling images within the same message container
- New _openImgLightboxWithNav, _navigateLightbox, _updateLightboxCounter
- CSS: .img-lightbox-nav (prev/next buttons), .img-lightbox-counter
- Close button (×), Escape key, and click-outside-to-close preserved
2026-05-26 15:16:03 +08:00
Sanjay Santhanam cf94f2f7c4 docs(docker): promote scheduled-jobs section to H2 + runnable verify command (review feedback from @nesquena-hermes) 2026-05-25 23:11:59 -07:00
Sanjay Santhanam 0211e1e012 fix(providers): pass through server CSRF reason instead of one-size message (review feedback from @nesquena-hermes) 2026-05-25 23:11:11 -07:00
Sanjay Santhanam 6dd6bced67 fix(transcript): preserve subagent accent over tool-card border-left (review feedback from @nesquena-hermes) 2026-05-25 23:10:39 -07:00
Frank Song fb2b1ebd19 Clarify contract routing coverage boundary 2026-05-26 11:32:34 +08:00
Frank Song 8f152a005e docs: require contract change routing 2026-05-26 10:06:50 +08:00
dobby-d-elf ca9e821b5e Reduce session index churn on chat start 2026-05-25 16:25:23 -06:00
Sanjay Santhanam 655b5f9101 docs(docker): point gateway-not-configured banner at a real fix
Scheduled cron jobs created in the Tasks panel never tick on a
single-container Docker install because the WebUI doesn't run the
gateway daemon itself. The maintainer's analysis on #2785 spells this
out: the gateway ticks the scheduler every 60s, and without it
'Gateway not configured' just sits there.

The Tasks panel already shows a banner explaining this, but doesn't
give the user anywhere to go. Two small docs-shaped changes:

1. Add a 'Scheduled jobs require a gateway daemon' section to
   docs/docker.md under 'What goes wrong' with the two-container
   compose command and a verify step. Cross-linked from the existing
   short paragraph higher up so both entry points land on the same
   fix.

2. Append a 'How to enable scheduled jobs in Docker' link to the
   cron panel banner (loadCronGatewayNotice) pointing at the new
   docs anchor when the gateway is unconfigured. The banner text
   itself is unchanged.

Verified locally by serving the WebUI without a gateway, opening
Tasks, and confirming the banner now shows the new link; clicked it
and confirmed it lands on the new docs section. With the gateway
running the banner stays hidden as before.

Refs #2785
2026-05-25 11:35:24 -07:00
Sanjay Santhanam 51f333fef0 fix(providers): clearer toast on 403 when removing a provider key
The Remove button under Settings -> Providers calls
POST /api/providers/delete, which runs through _check_csrf. When the
CSRF cookie/header pair has drifted (typically a tab opened before the
most recent login or cookie rotation), the server returns 403 with the
string 'Cross-origin request rejected'. That string reads like a
reverse-proxy deployment problem and gives the user no next step (#2572).

Surface a recovery-shaped toast on 403 from this endpoint:
'Session expired. Reload the page and try again.' The underlying
server response is unchanged so logs/diagnostics still see the original
string; only the user-facing toast is replaced for this code path.

Verified locally by patching _check_csrf to return False, clicking
Remove on a provider card, and confirming the toast now reads the new
message instead of the raw cross-origin string.

Refs #2572
2026-05-25 11:28:14 -07:00
Sanjay Santhanam d86e841f0b fix(transcript): make tool cards visually distinct without hover
The tool-card border-subtle was so faint that the cards visually melted
into the surrounding prose once the cursor left the conversation. Bumps
the resting border to --border-muted and adds a 2px left edge so a tool
output row reads as metadata at a glance, even on light skins where
border-subtle is barely visible. Hover still escalates to --border2.

Verified by loading a session with mixed tool calls and assistant prose
on the light theme and confirming the tool cards are now identifiable
without mousing over them.

Refs #2867
2026-05-25 11:22:35 -07:00
nesquena-hermes 48a2e79224 Merge pull request #2947 from nesquena/release/stage-batch19
Release DI — stage-batch19 — 6-PR medium-risk batch (v0.51.137)
v0.51.137
2026-05-25 10:56:06 -07:00
nesquena-hermes 4d3a59d72c stage-batch19: stamp v0.51.137 / Release DI 2026-05-25 17:52:38 +00:00
nesquena-hermes f13433b7d3 stage-batch19: backfill CHANGELOG entry for #2915 (marker-based anchor) 2026-05-25 17:48:43 +00:00
george-andraws 0f388de09c fix duplicate chat upload filenames 2026-05-25 17:48:19 +00:00
nesquena-hermes 0c6af12723 Merge pull request #2933
# Conflicts:
#	CHANGELOG.md
2026-05-25 17:48:05 +00:00
nesquena-hermes 7c666d8e4d Merge pull request #2913
# Conflicts:
#	CHANGELOG.md
2026-05-25 17:47:51 +00:00
nesquena-hermes fb9d67865b Merge pull request #2937
# Conflicts:
#	CHANGELOG.md
2026-05-25 17:47:36 +00:00
nesquena-hermes c6869806f0 Merge pull request #2923
# Conflicts:
#	CHANGELOG.md
2026-05-25 17:47:23 +00:00
nesquena-hermes c2fc390723 Merge pull request #2915 2026-05-25 17:46:56 +00:00