Commit Graph

3144 Commits

Author SHA1 Message Date
BonyFish ea3d4ec0b3 feat(cron): dynamic delivery options from API instead of hardcoded select
Replace the hardcoded 4-option deliver dropdown (local/discord/telegram/slack)
with a dynamic select populated from a new GET /api/crons/delivery-options
endpoint that reads _KNOWN_DELIVERY_PLATFORMS from hermes-agent.

Key changes:
- Add GET /api/crons/delivery-options endpoint returning all known platforms
- Frontend loads options asynchronously on first cron form open, with caching
- Enable deliver editing for existing jobs (was previously disabled)
- Include deliver in update payload when editing cron jobs
- Fallback to local-only if API unavailable
- Custom deliver values (e.g. feishu:oc_xxx) shown with * suffix
- Add cron_deliver_custom i18n key to all 12 locales
- Add 5 integration tests for the new endpoint
2026-05-27 10:58:49 +08:00
nesquena-hermes 08e9ce3d8a Merge pull request #2992 from nesquena/release/stage-batch23
Release DM — stage-batch23 — 4-PR second hold-bucket pass (v0.51.141)
v0.51.141
2026-05-26 17:46:00 -07:00
nesquena-hermes 3a32660739 stage-batch23: stamp v0.51.141 / Release DM 2026-05-27 00:42:38 +00:00
nesquena-hermes 2d7d2cb31d Merge pull request #2958
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:38:58 +00:00
nesquena-hermes ad4a4e2d62 Merge pull request #2506
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:38:40 +00:00
nesquena-hermes aa6cd48318 Merge pull request #2888
# Conflicts:
#	CHANGELOG.md
#	tests/test_webui_prefill_context.py
2026-05-27 00:38:24 +00:00
nesquena-hermes e0dfa0c586 Merge pull request #2792 2026-05-27 00:37:48 +00:00
nesquena-hermes 83862e67aa Merge pull request #2990 from nesquena/release/stage-batch22
Release DL — stage-batch22 — 5-PR hold-bucket reassessment (v0.51.140)
v0.51.140
2026-05-26 17:27:19 -07:00
nesquena-hermes 8b505e8ece stage-batch22: stamp v0.51.140 / Release DL 2026-05-27 00:23:54 +00:00
nesquena-hermes b5856f76ec stage-batch22: backfill CHANGELOG entries for #2964, #2986, #2899, #2970 2026-05-27 00:20:03 +00:00
nesquena-hermes 6c619f9e81 Merge pull request #2970 2026-05-27 00:19:20 +00:00
nesquena-hermes 858a250319 Merge pull request #2899 2026-05-27 00:19:20 +00:00
nesquena-hermes 52e785a2d8 Merge pull request #2902
# Conflicts:
#	CHANGELOG.md
2026-05-27 00:19:20 +00:00
nesquena-hermes 244258aa89 Merge pull request #2986 2026-05-27 00:19:00 +00:00
nesquena-hermes 2db584969c Merge pull request #2964 2026-05-27 00:19:00 +00:00
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
ai-ag2026 fceb255252 fix(session): anchor message windows on renderable tail rows 2026-05-26 23:37:08 +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
AlexeyDsov 08277fcd9c perf(ui): cache visWithIdx to skip O(N) scan on render window expansion 2026-05-26 11:24:23 +03:00
AlexeyDsov f0dfe116ca perf(ui): limit renderMessages O(N) passes to visible window 2026-05-26 11:24:11 +03:00
AlexeyDsov 755ecb94cd perf(ui): cache renderMd output and lazy Prism.js highlighting 2026-05-26 11:23:50 +03:00