Commit Graph
100 Commits
Author SHA1 Message Date
Frank Song 70b019f710 feat: let extension skins declare base scheme 2026-06-30 18:17:40 +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
Frank SongandPaperclip 33e95277ca Honor preserved extension diagnostics refresh failures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-27 05:13:10 +00:00
Frank SongandPaperclip 71dd4a6ab8 Polish extension sidecar diagnostics refresh
Keep the Diagnostics tab content visible while status refreshes on repeat visits, and reject malformed or far-future sidecar runtime timestamps before rendering relative age text.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-27 05:12:50 +00:00
Frank Song d2eedd85f8 Show extension sidecar runtime status 2026-06-27 05:12:50 +00:00
Frank SongandPaperclip d68760b288 Prove continuation index completeness before trusting it
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 16:27:40 +00:00
Frank SongandPaperclip eda4c50cf5 Handle stale compression continuation index fallback
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 16:27:40 +00:00
Frank Song 0f87757a47 Use session index for compression continuations 2026-06-26 16:27:40 +00:00
Frank SongandPaperclip ecf2eda433 Update pending user reattach regression
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 11:12:50 +00:00
Frank SongandPaperclip 2d21eff780 Fix pending user dedupe current-turn scope
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 11:12:50 +00:00
Frank Song 540d36d0b0 Fix inflight tail merge harness dependency 2026-06-26 11:12:50 +00:00
Frank Song 24b6e87aea Scope active user turn dedupe to current turn 2026-06-26 11:12:50 +00:00
Frank Song 035a2609f1 Harden active user turn dedupe tests 2026-06-26 11:12:50 +00:00
Frank Song 709f133d76 Fix active user turn replay dedupe 2026-06-26 11:12:50 +00:00
Frank SongandPaperclip f15f178b5e Guard state db prefix keys with tool calls
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank SongandPaperclip 7a38b09af1 Fix lint for state db prefix key guard
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank SongandPaperclip fd81b6cb08 Guard state db tail reads by prefix keys
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank Song dc9d6275cb Address state db tail-window coordinate guards 2026-06-26 10:43:27 +00:00
Frank Song 91f7e7f816 Address state db tail window review 2026-06-26 10:43:27 +00:00
Frank Song 8bd31891e3 Bound state.db reads for paginated session loads 2026-06-26 10:43:27 +00:00
Frank Song 5b0e409d3b Handle equal-timestamp tool-call tail ordering 2026-06-26 02:18:18 +00:00
Frank Song 7e8834d8ca Fix tool-call tail ordering in session merge 2026-06-26 02:18:18 +00:00
Frank Song fda5a241b2 Fix sidebar reconciliation review issues 2026-06-26 00:36:15 +00:00
Frank Song 0e2214b6bd Fix WebUI state.db session reconciliation 2026-06-26 00:34:58 +00:00
Frank Song 6079b7ba24 Address compaction marker and redaction review 2026-06-26 00:12:09 +00:00
Frank Song 9f0864ea82 Fix compaction marker writeback and code redaction 2026-06-26 00:12:09 +00:00
Frank Song 8b1f8fe5ca Add final stream writeback diagnostics 2026-06-25 16:42:53 +00:00
Frank Song 7d69b80012 Avoid repeated session loads in live usage metering 2026-06-25 16:12:18 +00:00
Frank Song 3fd88903b0 Remove contributor changelog entry 2026-06-25 22:55:27 +08:00
Frank Song 3bae596ae8 Reduce session index global lock window 2026-06-25 22:02:34 +08:00
Frank Song 5f17ba55ed Fix gallery-installed extension activation 2026-06-25 07:10:17 +00:00
Frank Song 2aaad7a282 Fix final answer reasoning echo 2026-06-24 15:29:25 +08:00
Frank Song cafeda63ca Preserve processed Worklog duration during message merges 2026-06-24 11:32:27 +08:00
Frank Song f653b1b8d9 feat: allow live worklog summary collapse 2026-06-23 23:22:16 +08:00
Frank Song 4c8e88ab2d fix: dedupe live compact worklog process prose 2026-06-23 23:03:04 +08:00
Frank Song 1269289d01 fix: guard live worklog scroll rebuilds 2026-06-23 23:00:32 +08:00
Frank Song a4470bd30c Deduplicate live progress reasoning echoes 2026-06-23 12:51:16 +08:00
Frank Song 4bb6fd132f Drop contributor changelog entry 2026-06-23 11:52:08 +08:00
Frank Song 61a7881056 Preserve scroll across live Worklog rebuilds 2026-06-23 11:42:36 +08:00
Frank Song 0567b056c0 fix(compression): guard state replay after compacted anchors 2026-06-22 18:37:05 +00:00
Frank Song 87ab74d1b9 fix(ui): preserve thinking detail scroll on rebuild 2026-06-23 00:11:51 +08:00
Frank Song fce927d5ac Fix pre-session toolsets staging 2026-06-19 18:35:04 +00:00
Frank Song 36e992415b Fix post-start attach resilience for #4481 2026-06-19 17:51:36 +08:00
Frank Song 531c5787c6 fix: refine context reload fallback guard 2026-06-19 00:05:52 +08:00
Frank Song 9f174f6cc3 test: update session context fallback guard 2026-06-18 23:19:58 +08:00
Frank Song f9d6b127e3 fix: preserve large context window on session reload 2026-06-18 23:13:19 +08:00
Frank Song 409fb59760 Add assistant turn anchor renderer snapshot adapter 2026-06-14 02:03:45 +08:00
Frank Song 0fdcd00858 Fix PWA final answer scroll refresh 2026-06-14 01:46:04 +08:00
Frank Song c52c832d05 Add assistant turn anchor dual-run reconciler 2026-06-14 01:04:29 +08:00
Frank Song aa96bc52bc Add assistant turn anchor live shadow feed 2026-06-13 16:26:52 +08:00
Frank Song 59c2ccd9cf feat(anchor): project activity scene rows 2026-06-13 13:23:27 +08:00
Frank Song b990bd09dd feat(anchor): project settled final answer through anchor 2026-06-13 13:23:15 +08:00
Frank Song 9f0e76c182 Preserve worklog detail disclosure state 2026-06-13 07:43:12 +08:00
Frank Song d516f9dd00 fix(anchor): harden registry contract before wiring 2026-06-13 00:44:26 +08:00
Frank Song 53051ad4a3 fix(anchor): harden registry review findings 2026-06-12 16:15:09 +08:00
Frank Song 65cb2a8b46 feat(anchor): add shadow source registry harness 2026-06-12 15:52:28 +08:00
Frank Song acd9d2e6f4 fix(anchor): carry normalizer hardening into registry slice 2026-06-12 15:52:28 +08:00
Frank Song 56a89ef11e feat(anchor): add inert turn registry skeleton 2026-06-12 15:52:28 +08:00
Frank Song d701828d72 fix(anchor): harden normalizer identity handling 2026-06-12 13:57:54 +08:00
Frank Song 2abff38ee1 fix(anchor): harden normalizer payload shaping 2026-06-12 13:57:54 +08:00
Frank Song 36123628d5 feat(anchor): add assistant turn source normalizer 2026-06-12 13:57:54 +08:00
Frank Song 02e72163a6 Fix tool-limit terminal failure annotation 2026-06-12 10:25:18 +08:00
Frank Song 136568fe81 fix(streaming): tighten tool limit terminal guards 2026-06-12 10:03:31 +08:00
Frank Song 08ba5a6676 Fix tool-limit terminal detection 2026-06-12 10:03:31 +08:00
Frank Song ec23dac922 Handle tool limit terminal state 2026-06-12 10:03:31 +08:00
Frank Song c4284dc77c fix: hide Worklog reasoning with Thinking 2026-06-11 13:30:23 +08:00
Frank Song 10573ab8aa Fix session media image rendering 2026-05-28 18:05:01 +08:00
Frank Song 9190ab4449 Fix empty partial activity tail recency 2026-05-28 15:30:49 +08:00
Frank Song 9ddf36f510 fix: reset _messagesTruncated flag on new session creation
newSession() did not reset _messagesTruncated or _oldestIdx, unlike
loadSession() which resets both at line 590. When a user switched from
a long session (messages > _INITIAL_MSG_LIMIT) to a new session, the
stale _messagesTruncated=true caused renderMessages() to show the
'Scroll up or click to load older messages' indicator on a fresh
conversation with only 1 message.

Add the same reset that loadSession() already performs so newSession()
starts with clean pagination state.
2026-05-28 12:13:30 +08:00