Commit Graph
100 Commits
Author SHA1 Message Date
Frank Song 18a2078ebb fix(streaming): guard empty terminal error hints 2026-07-06 11:15:31 +08:00
Frank Song 77f54eeb5a Render session recovery card from active session state 2026-07-06 09:43:10 +08:00
Frank SongandPaperclip d284fcd034 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-06 02:24:07 +08:00
Frank SongandPaperclip d1ed4a0b49 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-06 01:44:58 +08:00
Frank SongandPaperclip 322e5a44fa Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 17:23:05 +08:00
Frank SongandPaperclip 90b38cf1fe Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 17:02:55 +08:00
Frank SongandPaperclip 0b339a0e8a Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 16:22:50 +08:00
Frank SongandPaperclip 08fc9bd95e Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 15:44:44 +08:00
Frank SongandPaperclip cc816828d2 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 15:03:26 +08:00
Frank SongandPaperclip 7f3eed0a82 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 14:03:45 +08:00
Frank SongandPaperclip 94305093d8 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 13:24:10 +08:00
Frank SongandPaperclip 1262148fc8 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 12:43:07 +08:00
Frank SongandPaperclip fa5d4b7b7a Narrow compression recovery profile match fallback
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 11:04:00 +08:00
Frank SongandPaperclip 4412e7a2f4 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 11:04:00 +08:00
Frank SongandPaperclip b3899d64c5 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 10:23:15 +08:00
Frank SongandPaperclip 9d042102ae Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 09:42:11 +08:00
Frank SongandPaperclip 440f1e6eb8 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 09:22:00 +08:00
Frank SongandPaperclip a6741f1c6f Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 08:42:15 +08:00
Frank SongandPaperclip 3b99b1f5fa Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 08:23:07 +08:00
Frank SongandPaperclip 6a35d9c674 fix: preserve compression recovery source metadata
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 07:51:26 +08:00
Frank SongandPaperclip 81d5e897e9 fix: isolate compression recovery child sessions
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 07:46:43 +08:00
Frank SongandPaperclip 0f5da09715 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 07:42:16 +08:00
Frank SongandPaperclip 7425dc3549 fix: preserve compression recovery child markers in sidecar rebuild
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 06:45:50 +08:00
Frank SongandPaperclip 8717dcc03b Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 06:42:39 +08:00
Frank SongandPaperclip 4deb1a9bfb Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 06:29:08 +08:00
Frank SongandPaperclip 9280c073ba Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 06:22:24 +08:00
Frank SongandPaperclip c7123bd5c9 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 05:46:56 +08:00
Frank SongandPaperclip e3cf9e7099 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 05:42:10 +08:00
Frank SongandPaperclip f0bfa74898 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 05:22:50 +08:00
Frank SongandPaperclip 60bcda09ad Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 04:25:29 +08:00
Frank SongandPaperclip a83ffae4ac Live Stream: skip stale compression recovery fallback
Treat a cleared session-level compression_recovery payload as authoritative so old message metadata cannot intercept a later generic continuation after a successful new turn.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 04:25:22 +08:00
Frank SongandPaperclip 82a5e92524 Merge latest master into compression recovery action
Resolved the session SSE RFC anchor conflict by keeping the latest symbol-based wording from master.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 04:04:23 +08:00
Frank SongandPaperclip c8b79bcaa7 Merge latest master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 03:29:59 +08:00
Frank SongandPaperclip 61b87cd3e2 Merge master into compression recovery action
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-05 03:23:32 +08:00
Frank SongandPaperclip f25571342e Keep recovery metadata after branch parent field
Restore the compact() source-order expectation used by the branch metadata contract test while keeping focused compression recovery markers in the compact payload.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-04 22:36:19 +08:00
Frank SongandPaperclip 1e9d42c053 Live Stream: harden compression recovery action
Make focused compression-recovery continuation creation idempotent by marking child sessions and reusing the existing child on repeated start requests. Also surface malformed successful recovery responses in the UI instead of silently re-enabling the action.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-04 22:30:57 +08:00
Frank Song dfc0686dbd Live Stream: add compression recovery action 2026-07-04 21:42:32 +08:00
Frank SongandPaperclip 4643d3520e Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 08:07:51 +08:00
Frank SongandPaperclip af7da472d2 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 07:27:27 +08:00
Frank SongandPaperclip fdeb37bbe2 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 07:02:01 +08:00
Frank SongandPaperclip 52f5d15214 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 06:42:56 +08:00
Frank SongandPaperclip f874f4027c Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 06:22:02 +08:00
Frank SongandPaperclip 36fcd10db7 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 06:01:53 +08:00
Frank SongandPaperclip 4da83ada63 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 05:42:12 +08:00
Frank SongandPaperclip bb95539918 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 05:02:19 +08:00
Frank SongandPaperclip 7f069100cc Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 04:23:09 +08:00
Frank SongandPaperclip ab4844f54a Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 04:02:12 +08:00
Frank SongandPaperclip 54cbc35155 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 03:41:54 +08:00
Frank SongandPaperclip 5db7e7c304 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 03:21:43 +08:00
Frank SongandPaperclip b913dde912 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 02:22:08 +08:00
Frank SongandPaperclip 2ffb8ab470 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 01:42:44 +08:00
Frank SongandPaperclip 63a327f470 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 01:22:13 +08:00
Frank SongandPaperclip 8a556df032 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 01:02:18 +08:00
Frank SongandPaperclip 71a87b5340 Merge origin/master into PR #5271
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 00:43:07 +08:00
Frank Song 70b019f710 feat: let extension skins declare base scheme 2026-06-30 18:17:40 +08:00
Frank SongandPaperclip 97992e72ad Merge origin/master into PR 5253
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 14:32:18 +08:00
Frank SongandPaperclip 7e038aaad3 Merge branch 'master' into franksong2702/fix-transparent-live-snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 13:54:15 +08:00
Frank SongandPaperclip 3d865e4c1f Merge origin/master into PR #5256
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 13:52:36 +08:00
Frank SongandPaperclip e01d9ff46e Merge origin/master into PR #5256
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 13:15:47 +08:00
Frank SongandPaperclip 0369e1e9de Merge branch 'master' of https://github.com/nesquena/hermes-webui into franksong2702/fix-transparent-live-snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 13:12:39 +08:00
Frank SongandPaperclip 3188fe1445 Merge origin/master into PR 5253
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 13:10:55 +08:00
Frank SongandPaperclip 6ac5b9dbee Fix transparent live anchor scene replay
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 12:27:02 +08:00
Frank SongandPaperclip 2c8f30de35 Merge origin/master into PR 5253
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 12:26:58 +08:00
Frank SongandPaperclip 44d881eede Merge origin/master into PR #5256
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 12:26:28 +08:00
Frank SongandPaperclip 670105b121 test(sidebar): relax menu delete hook assertion
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 11:31:41 +08:00
Frank Song bb6487a70a fix(sidebar): remove menu-deleted sessions optimistically 2026-06-30 10:56:48 +08:00
Frank SongandPaperclip 71a458784a fix(chat): guard live worklog manual scroll intent
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-30 10:52:11 +08:00
Frank Song 448e28f442 fix(chat): preserve manual live worklog scroll snapshots 2026-06-30 10:28:36 +08:00
Frank Song eff01bf322 Gate settled anchor fallbacks by raw index 2026-06-30 08:00:54 +08:00
Frank SongandPaperclip afbb3e5010 Fix session stream resume after live stream end
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-29 19:52:02 +00:00
Frank SongandPaperclip 47d8ac94d3 Harden connection flapping aftercare
Keep sidebar retries boot-scoped, preserve immediate source-change cache rebuilds, and tighten session stream ownership before closing duplicate SSE sockets.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-29 19:52:02 +00:00
Frank Song cbb644da69 Reduce connection lost flapping under large session state 2026-06-29 19:52:02 +00:00
Frank Song 7f98952db0 test: harden anchor fallback harness 2026-06-29 19:37:37 +00:00
Frank Song 7cdcadcbc4 test: lock anchor fallback render ownership 2026-06-29 19:37:37 +00:00
Frank SongandPaperclip fbb1e9567c test: align new chat guard static coverage
Update the older #1432 static regression to assert the extracted reusable-empty helper owns the message-count and in-flight checks, while both New Chat entry points call the helper. This keeps the test aligned with the shared guard introduced in PR #5206.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-29 18:38:25 +00:00
Frank Song 28c2c37c1c Fix new chat empty-session reuse guard 2026-06-29 18:38:25 +00:00
Frank SongandPaperclip 058372c15f Preserve empty anchor tool args in parity helper
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-29 05:35:03 +00:00
Frank SongandPaperclip e670320337 Tighten anchor runtime journal parity test
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-29 05:35:03 +00:00
Frank Song e1bf1122a7 Test anchor runtime journal parity 2026-06-29 05:35:03 +00:00
Frank SongandPaperclip 73ff1cd53b Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 17:13:55 +08:00
Frank SongandPaperclip 2ef838be8c test(anchor): widen JS regex extraction guard
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 17:05:16 +08:00
Frank SongandPaperclip 767285f21f Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 17:02:52 +08:00
Frank SongandPaperclip f786a70887 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 16:41:42 +08:00
Frank SongandPaperclip 5b96da8c1d test(anchor): locate JS body after params
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 16:11:21 +08:00
Frank SongandPaperclip a86d2d2060 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 16:01:58 +08:00
Frank SongandPaperclip 51a0bee188 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 15:40:48 +08:00
Frank SongandPaperclip 770d877467 test(anchor): harden JS helper extraction
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 15:32:45 +08:00
Frank SongandPaperclip 90fd37dbd3 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 15:21:55 +08:00
Frank SongandPaperclip 9c0eecfbe9 test(anchor): include node stderr in behavior guard failures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 15:03:19 +08:00
Frank SongandPaperclip 0f41d01d0f Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 15:02:02 +08:00
Frank SongandPaperclip 02a8582711 test(anchor): skip node behavior check when node missing
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 14:32:22 +08:00
Frank SongandPaperclip 63d69a0c5e Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 14:22:50 +08:00
Frank SongandPaperclip ce4466bbf2 test(anchor): handle template interpolation in fallback guards
Teach the lightweight JavaScript extractor used by the anchor ownership tests to skip template literals with nested interpolation, so braces inside ${...} expressions cannot truncate the inspected function body.

Add a synthetic regression for nested template literals before the ownership-order assertions exercise static/ui.js.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 13:31:27 +08:00
Frank SongandPaperclip c5727846e0 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 13:30:15 +08:00
Frank SongandPaperclip 3c27c697c1 Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 13:21:35 +08:00
Frank SongandPaperclip ddb8ddd811 Merge current master into extension gallery source permissions
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 13:05:12 +08:00
Frank SongandPaperclip d44c5a2f7b Merge origin/master into anchor fallback audit
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 13:02:12 +08:00
Frank Song 06465bbd91 Improve extension gallery source and permissions display 2026-06-28 12:44:57 +08:00
Frank SongandPaperclip 2587eedb54 test(anchor): harden fallback ownership guards
Defer fixture file reads to test-time helpers so missing assets fail with clear assertion messages instead of import-time collection errors.

Use one Python-side function extractor for both source-structure checks and the Node behavior check, and skip JavaScript strings/comments while matching delimiters so braces inside literals do not truncate the inspected function body.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-28 12:14:18 +08:00
Frank Song 571db9d81e Document anchor fallback ownership 2026-06-28 12:09:12 +08:00