Commit Graph

317 Commits

Author SHA1 Message Date
nesquena-hermes fa6e939c69 Stage 378: PR #2146 2026-05-17 19:55:09 +00:00
nesquena-hermes 45e11e794c Stage 376: PR #2460
# Conflicts:
#	CHANGELOG.md
2026-05-17 16:42:10 +00:00
Michael Lam 2785065a09 feat: add thinking card copy button 2026-05-17 03:57:54 -07:00
Michael Lam 8ba16ab294 fix: reuse compact live thinking card 2026-05-16 21:44:18 -07:00
nesquena-hermes 573b1e12ad Stage 375: PR #2428 stage-fix #2 — drop angle brackets from pipe-protect set (Opus catch)
Opus advisor review of stage-375 flagged that the protected-bracket set including `<` and `>` caused tables containing comparison operators across adjacent columns to mis-collapse: `| x < 5 | y > 10 |` matched `< ... >` as a bracket pair and stashed the inner pipe, producing one cell instead of two.

Real LLM table output uses angle brackets as comparison operators far more often than as content-grouping pairs, so the safer default is to NOT treat them as a matched pair. Dropped `<` from the opener class and `>` from both closer classes.

Three regression tests added (`TestComparisonOperatorsAcrossColumns` class): `< … >` across columns, `<` alone, `>` alone.
2026-05-17 03:53:29 +00:00
nesquena-hermes d45d4c08b5 Stage 375: PR #2428 stage-fix — hex-escape brace literals in pipe-protect regex + drop apostrophe-stop + add 9 regression tests
PR #2428's iterative _protectPipes regex introduced two issues we caught during stage assembly:

1. The negated character classes [^)\]}'>] added `'` as a stop character. That breaks cells containing string-literal pipes like `('a'|'b')` (Python type-union examples) — they would still mis-split. Dropped the apostrophe-stop.

2. The literal `}` inside the regex character classes confused the brace-counting extractFunc driver in tests/test_renderer_js_behaviour.py, breaking all 45 existing node-driven renderer tests. Rewrote both brace literals as hex escapes (\\x7b and \\x7d) — semantically identical at the regex-engine level but the JS source carries no bare brace glyph.

Also added tests/test_issue2428_table_pipe_protection.py with 9 regression tests covering single-pipe, multi-pipe-in-brackets, apostrophes-with-pipes, and the KaTeX \$...\$ guard.
2026-05-17 03:41:43 +00:00
nesquena-hermes 1793aa8c85 Stage 375: PR #2428 — fix(renderer): protect pipes inside brackets from table cell split + KaTeX dollar in tables by @bengdan
Co-authored-by: manji <manji@local>
2026-05-17 03:35:19 +00:00
nesquena-hermes a33cd4195b Stage 374: PR #2431 — fix(chat): render pending assistant placeholder before /api/chat/start returns by @Michaelyklam (fixes #2429)
Co-authored-by: Michael Lam <michael@example.local>
2026-05-17 02:49:35 +00:00
nesquena-hermes 47c210899e Stage 374: PR #2421 — fix(cache-tokens): surface provider prompt-cache read/write tokens in WebUI usage by @Michaelyklam (fixes #2419)
Co-authored-by: Michael Lam <michael@example.local>
2026-05-17 02:49:34 +00:00
nesquena-hermes 3480e75e13 Stage 372: PR #2413 — feat(quota-chip): add Settings toggle, flip default to off 2026-05-16 23:05:09 +00:00
nesquena-hermes 780bddca04 Stage 372: PR #2411 — fix: preserve named custom provider model selections by @Michaelyklam (fixes #2405) 2026-05-16 23:04:53 +00:00
nesquena-hermes 862d32ce27 Stage 372: PR #2408 — fix: split live Activity groups at auto-compression by @Michaelyklam (fixes #2404) 2026-05-16 23:04:18 +00:00
nesquena-hermes a4ab7d4d27 Stage 371: PR #2409 — Stuck-PR sweep: salvage RTL chat from #1721 + override quota chip from #2082 by @malulian and @ai-ag2026
Co-authored-by: malulian <malulian@users.noreply.github.com>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-05-16 22:04:56 +00:00
Hermes Agent b937cf3583 Stage 370: PR #2390 — Fix live progress Activity grouping by @franksong2702
# Conflicts:
#	CHANGELOG.md
2026-05-16 20:21:58 +00:00
Hermes Agent 8b4f8b0600 Stage 369: PR #2347 — Preserve live agent timeline across session switches by @franksong2702 2026-05-16 20:03:43 +00:00
Frank Song 2dfe3ffb42 Fix live progress activity grouping 2026-05-16 23:37:44 +08:00
Michael Lam 3cbe206832 fix: keep markdown tables block-level 2026-05-16 02:12:52 -07:00
Frank Song e7e45fe98b Stamp live assistant turns at creation 2026-05-16 14:12:08 +08:00
Frank Song 10db8b3bb6 Preserve base Thinking card markup for animation tests 2026-05-16 14:12:08 +08:00
Frank Song faedcab739 Preserve live agent timeline across session switches 2026-05-16 14:12:08 +08:00
Frank Song 433ad29939 Fix compression reference card anchoring 2026-05-16 04:25:22 +00:00
Frank Song dd5f3ff9b5 Suppress interim text echoes in Thinking cards 2026-05-16 04:07:03 +00:00
Frank Song 2162dab4a5 Fix pending user row on active reattach 2026-05-16 10:34:55 +08:00
Hermes Agent 300571936c Merge pull request #2331 into stage-362
fix: show readable live activity progress (Michaelyklam)

# Conflicts:
#	CHANGELOG.md
2026-05-15 22:55:33 +00:00
Michael Lam 2e039ab7f7 fix: show readable live activity progress 2026-05-15 14:11:58 -07:00
Michael Lam 5a2137bedb fix: skip provider mismatch for named custom providers 2026-05-15 13:50:18 -07:00
Hermes Agent b2ebbebf01 Merge pull request #2279 into stage-360
Fix WebUI stream completion recovery gaps (franksong2702, closes #2262 + #2168)
2026-05-15 16:15:38 +00:00
Hermes Agent d510b8d2d5 Merge pull request #2303 into stage-359
Add assistant question jump buttons (franksong2702, fixes #2246)

# Conflicts:
#	CHANGELOG.md
2026-05-15 14:55:15 +00:00
Frank Song 05a5ed5af1 Add assistant question jump buttons 2026-05-15 19:39:27 +08:00
Yao Ning b1bf800fa4 feat: make upload size limit runtime-configurable
Signed-off-by: Yao Ning <zay11022@gmail.com>
2026-05-15 11:39:23 +08:00
Frank Song 5f9b9c02b2 Fix WebUI stream completion recovery gaps 2026-05-15 08:36:48 +08:00
Frank Song 0461b97d15 Escape model picker display text 2026-05-14 23:03:48 +08:00
Hermes Agent 70f09aaeb6 Merge pull request #2207 into stage-351
feat: add per-target update summaries with separate WebUI/Agent What's-new links (Jordan-SkyLF, fixes #1579)
2026-05-13 23:51:28 +00:00
Jordan SkyLF 25ce490e24 docs: add update banner summary mode screenshots 2026-05-13 16:27:06 -07:00
Frank Song dc213d47b8 fix: preserve literal thinking tags 2026-05-14 07:13:34 +08:00
Jordan SkyLF f0d2ebccd9 Persist generated summary button state 2026-05-13 15:53:01 -07:00
Jordan SkyLF 7925a15211 Clarify generated summary button states 2026-05-13 15:53:01 -07:00
Jordan SkyLF 90c2ee7e04 Split What's New summaries by target 2026-05-13 15:53:01 -07:00
Jordan SkyLF cae007b069 Refine What's New summary sections 2026-05-13 15:53:01 -07:00
Jordan SkyLF 623dfef499 Stabilize What's New summaries 2026-05-13 15:53:01 -07:00
Jordan SkyLF bec21eafa0 Add What's New summary toggle 2026-05-13 15:53:01 -07:00
Jordan SkyLF cfc0f68d23 fix: show update whats-new links for webui and agent 2026-05-13 15:53:01 -07:00
Hermes Agent 1f9520d3f9 Merge pull request #2178 into stage-350
fix(ui): custom models not displayed in model configuration list (hualong1009)
2026-05-13 20:44:55 +00:00
Hermes Agent 3f851051cf Merge pull request #2151 into stage-350
fix: clarify cancelled chat turn status (Jordan-SkyLF)

Conflict resolution on api/streaming.py:4549-4567 (the cancel-handler
ownership guard). Both this PR and the already-shipped PR #2136 add a
guard at the same site against stale stream writebacks, from different
angles:

  - PR #2136 (HEAD): _stream_writeback_is_current(_cs, stream_id) — strictly
    dominates by checking the active_stream_id token equality.
  - PR #2151: 'worker won the race' check via (active_stream_id != stream_id
    and not pending_user_message), with _emit_cancel_event = False to suppress
    the terminal cancel event.

Resolution merges both: keep #2136's strictly-stronger condition for skip
detection, and adopt #2151's _emit_cancel_event = False semantic so the
cancel event isn't emitted in addition to skipping the writeback (when
client may have already received the successful done payload).

55/55 tests pass across cancelled-turn-status + stale-stream-writeback +
the four cancel/data-loss sibling test files.
2026-05-13 20:44:44 +00:00
dobby-d-elf efce9ebdd6 Merge remote-tracking branch 'origin/master' into tools-animation-version-b
# Conflicts:
#	static/ui.js
2026-05-13 13:11:35 -06:00
Hermes Agent 479e388be8 Merge pull request #2182 into stage-348
fix: keep compression banner attached to the compaction marker (LumenYoung)
2026-05-13 16:34:39 +00:00
dobby-d-elf a183378a05 Refine version B Activity highlight sweep 2026-05-13 08:17:12 -06:00
dobby-d-elf a60c222e76 Version A: tune Activity sweep animation 2026-05-13 08:07:52 -06:00
Xiangzhe 0b97f6d7ee fix: preserve thinking card state during reasoning updates 2026-05-13 20:58:50 +08:00
Lumen Yang 7f01abf931 fix: ignore stale compaction markers when placing banner 2026-05-13 13:27:51 +02:00