Commit Graph
100 Commits
Author SHA1 Message Date
Frank Song faedcab739 Preserve live agent timeline across session switches 2026-05-16 14:12:08 +08:00
Frank Song 58a43d7abd Document WebUI run state consistency contract 2026-05-16 05:43:06 +00:00
Frank Song 80be1d08dc Fix Markdown table cell paragraph spacing 2026-05-16 05:43:04 +00:00
Frank Song 433ad29939 Fix compression reference card anchoring 2026-05-16 04:25:22 +00:00
Frank Song d94320b4bf Avoid duplicate Thinking echo helper names 2026-05-16 04:07:03 +00:00
Frank Song dd5f3ff9b5 Suppress interim text echoes in Thinking cards 2026-05-16 04:07:03 +00:00
Frank Song 40f69a2b75 Keep recovered pending turns in context 2026-05-16 04:07:02 +00:00
Frank Song a3eace4380 Preserve SSE handler test shape 2026-05-16 02:58:34 +00:00
Frank Song 80d8d4b42c Address run journal replay review 2026-05-16 02:58:34 +00:00
Frank Song 3b96035af0 Add WebUI run event journal replay 2026-05-16 02:58:34 +00:00
Frank Song 685b075dd0 Avoid touching updated_at during stale stream cleanup 2026-05-16 02:58:33 +00:00
Frank Song 2162dab4a5 Fix pending user row on active reattach 2026-05-16 10:34:55 +08:00
Frank Song 05a5ed5af1 Add assistant question jump buttons 2026-05-15 19:39:27 +08:00
Frank Song 1fb047b51a Validate profile model selections 2026-05-15 18:36:38 +08:00
Frank Song 079d6b4e86 Add cron detail expansion controls 2026-05-15 18:04:53 +08:00
Frank Song cadcf983d5 Tighten silent failure shrink detection 2026-05-15 18:04:53 +08:00
Frank Song a90c0f6782 Skip agent git objects during Docker chown 2026-05-15 13:50:36 +08:00
Frank Song 86b2acb5e2 Keep unknown update summary bullets 2026-05-15 09:16:39 +08:00
Frank Song f3fefbc2ab Classify onboarding DNS probe failures consistently 2026-05-15 08:51:30 +08:00
Frank Song 5dddaf0f3d Fix settings i18n parity coverage 2026-05-15 08:51:30 +08:00
Frank Song 5f9b9c02b2 Fix WebUI stream completion recovery gaps 2026-05-15 08:36:48 +08:00
Frank Song 6cac6624f9 Harden update link git fixture 2026-05-14 23:07:14 +08:00
Frank Song d93903eddb Fix start.sh dotenv filtering load 2026-05-14 23:05:35 +08:00
Frank Song 0461b97d15 Escape model picker display text 2026-05-14 23:03:48 +08:00
Frank Song a56ec43d29 Show skill detail API errors 2026-05-14 22:57:15 +08:00
Frank Song 5ba5551d05 Clarify runtime adapter replay gates 2026-05-14 22:42:15 +08:00
Frank Song 93de0d8c31 Add skill detail screenshot evidence 2026-05-14 22:35:02 +08:00
Frank Song b2b38354db Update runtime adapter RFC gates 2026-05-14 22:34:51 +08:00
Frank Song ae8658affa Fix blank skill detail views 2026-05-14 22:28:20 +08:00
Frank Song 0042126473 Fix metadata-only session mutation routes 2026-05-14 22:16:53 +08:00
Frank Song 2b537ffa1b Fix archive metadata-only session reload 2026-05-14 19:31:25 +08:00
Frank Song 35309760ae test: couple mobile safe-area contract to viewport fit 2026-05-14 18:09:21 +08:00
Frank Song 6beb59d61f Improve mobile sidebar panel navigation 2026-05-14 15:16:33 +08:00
Frank Song 8b30ade923 Add profile creation model picker 2026-05-14 12:13:49 +08:00
Frank Song e2f319d730 Add extra large font size option 2026-05-14 11:09:21 +08:00
Frank Song 3d2f9cf699 Fix Appearance endless scroll label markup 2026-05-14 10:44:16 +08:00
Frank Song 996d4f9a8c Hide session lineage metadata in compact sidebar 2026-05-14 10:14:15 +08:00
Frank Song 9681761cdf fix: cap _summary_cache with OrderedDict LRU
Refs #2215 Fix A: replace plain dict _summary_cache with OrderedDict-based LRU capped at 16 entries to prevent unbounded memory growth from long-running update summary generations.

Add regression coverage for the bounded LRU behavior: cache hits refresh recency, a new entry at capacity evicts the least-recently used key, and cache size never exceeds the cap.
2026-05-14 09:14:28 +08:00
Frank Song 28ec3af697 fix: strip only leading user-asking wrapper line
Refs #2215 Fix B: remove the mid-response stripping hazard without losing leading multi-line wrapper cleanup.

The pattern now strips only a leading 'the user is asking' wrapper line and preserves the visible answer that follows. Add regression coverage for both the leading-wrapper and mid-response prose cases.
2026-05-14 09:14:28 +08:00
Frank Song dc213d47b8 fix: preserve literal thinking tags 2026-05-14 07:13:34 +08:00
Frank Song da73c00f06 Harden session tail redaction prefilter 2026-05-13 18:58:49 +08:00
Frank Song 155a727ec1 docs: refresh current snapshot for v0.51.54 2026-05-13 16:56:21 +08:00
Frank Song 65fa18c7d9 docs: add agent onboarding entrypoint 2026-05-13 16:47:14 +08:00
Frank Song be32b90cea docs: refresh current project snapshot 2026-05-13 16:47:14 +08:00
Frank Song b7ac5a8b88 Trim session tail response overhead 2026-05-13 15:57:29 +08:00
Frank Song d5dda03ec2 Fix ctl Python wrapper ownership 2026-05-13 13:09:42 +08:00
Frank Song e78945e7ca Skip CLI metadata lookup for native sessions 2026-05-13 12:35:12 +08:00
Frank Song 02ca306ffc Consolidate session post-render processing 2026-05-13 11:50:31 +08:00
Frank Song f1ca07c186 Localize logs severity filters 2026-05-13 10:55:59 +08:00
Frank Song 57ee0ce069 Add CSP report collector endpoint 2026-05-13 10:52:59 +08:00
Frank Song 5ae63ddd13 Fix stale stream state in session list 2026-05-13 10:28:12 +08:00
Frank Song 9ea4f1145d Fix stale stream exception writeback guards 2026-05-13 10:23:03 +08:00
Frank Song f4efe0790b Complete worktree remove i18n coverage 2026-05-13 09:57:24 +08:00
Frank Song e177f64e78 Add worktree remove PR screenshots 2026-05-13 09:53:56 +08:00
Frank Song 46c62851ad Harden worktree removal safeguards 2026-05-13 09:49:15 +08:00
Frank Song 93b7d35bfa Issue #2057 Slice 2: Add worktree remove action
Backend:
- POST /api/session/worktree/remove — removes a session's git worktree
- Guards: stream/terminal lock, dirty/untracked without force
- remove_worktree_for_session() in api/worktrees.py

Frontend:
- 'Remove Worktree' context menu item + confirm modal
- i18n keys for all 11 locales

Tests:
- 5 tests: clean remove, missing worktree, no-path, route success, 404
2026-05-13 09:11:55 +08:00
Frank Song 76e611d49f Preserve fallback provider credential hints 2026-05-12 20:42:55 +08:00
Frank Song b3f8bee96f Fix settings system mobile version wrapping 2026-05-12 20:42:55 +08:00
Frank Song b718220077 Fix login health probe credentials 2026-05-12 20:09:54 +08:00
Frank Song b7c5ba640c Fix custom live model scoping 2026-05-12 20:05:28 +08:00
Frank Song 8fa92c680f Fix manual compression proxy timeouts 2026-05-12 17:33:59 +08:00
Frank Song 4e8899592d Prefer worktree retention responses in session UI 2026-05-12 10:17:12 +08:00
Frank Song 6e1e9fafbe Add worktree status endpoint 2026-05-12 10:08:01 +08:00
Frank Song 2da4f108c5 Clarify worktree session archive/delete semantics
(cherry picked from commit f5c8fb58d1892f2c964389295530e8be5d84323f)
2026-05-12 00:05:05 +00:00
Frank Song 6a52edf2ab Fix stale inflight purge runtime lookup 2026-05-11 21:53:43 +08:00
Frank Song 18124ced62 Refactor compression anchor visibility helpers 2026-05-11 20:56:30 +08:00
Frank Song c8d110a7f0 test: align sidebar spinner state assertions 2026-05-11 20:31:00 +08:00
Frank Song a0e9c06102 Fix HERMES_HOME skill cache patching 2026-05-11 19:12:02 +08:00
Frank Song c60078b356 fix(ui): prevent stuck sidebar spinner on completed sessions (closes #2066)
The spinner (.session-state-indicator.is-streaming) can remain spinning
indefinitely on completed sessions when the INFLIGHT in-memory cache is
not cleaned up due to abnormal stream termination (page refresh, network
disconnect, gateway restart).

Add a staleness guard in _isSessionLocallyStreaming: if the server
reports is_streaming=false and last_message_at is older than 5 minutes,
force the streaming state to false regardless of stale INFLIGHT entries.
2026-05-11 17:54:14 +08:00
Frank Song f6115b78c6 Fix custom provider name slugs with ports 2026-05-11 17:24:53 +08:00
Frank Song 2cd10868aa Fix session recovery polish 2026-05-11 16:30:25 +08:00
Frank Song 5a445e7562 Fix duplicate assistant transcript merge 2026-05-11 13:09:16 +08:00
Frank Song db6857ba86 Address worktree session review notes 2026-05-11 12:51:57 +08:00
Frank Song 186453ea0e Add worktree-backed session creation 2026-05-11 12:12:40 +08:00
Frank Song 7aa1a5f42c docs: add first-run onboarding guide 2026-05-11 11:47:26 +08:00
Frank Song 642249747f Fix session message identity dedup 2026-05-11 08:14:50 +08:00
Frank Song 128e734df4 Fix Xiaomi API key env detection 2026-05-11 07:33:52 +08:00
Frank Song a27f1bf7db Clarify one-shot cron schedules 2026-05-11 07:03:17 +08:00
Frank Song e64e02479f Fix CLI session patch diff rendering 2026-05-10 20:44:34 +08:00
Frank Song 1bec8070f2 fix(1833): persist compression anchor summary for reload UI 2026-05-10 16:45:16 +08:00
Frank Song 2e6b3601bd fix(clarify): honor clarify.timeout config in webui prompts 2026-05-10 16:05:50 +08:00
Frank Song ba51efec26 test(kanban): assert profile-cache invalidation on profile delete 2026-05-10 15:49:14 +08:00
Frank Song 2427f1e598 test(kanban): harden locale-block parsing for quoted locales 2026-05-10 15:48:18 +08:00
Frank Song 1e1a9481b4 fix(i18n): localize /goal runtime status strings 2026-05-10 15:21:24 +08:00
Frank Song 4c95d9274e test: add kanban modal locale parity regression 2026-05-10 15:03:21 +08:00
Frank Song 42a23818b3 Fix 1974: trap focus in kanban modals 2026-05-10 14:57:51 +08:00
Frank Song 45a5253292 fix(i18n): add kanban status hint key to all locales for #1994 2026-05-10 14:49:30 +08:00
Frank Song b67d2676e4 fix(kanban): show original status hint in edit modal 2026-05-10 14:40:46 +08:00
Frank Song b06eb99d91 fix(kanban): invalidate profile cache for assignee select 2026-05-10 14:37:37 +08:00
Frank Song 8f077d37f7 Fix German profile_skill_count interpolation 2026-05-10 14:25:08 +08:00
Frank Song a0b757a9d4 Fix Kanban dispatch double-click race guard 2026-05-10 14:18:50 +08:00
Frank Song b38cc2f1ea Mute stale stopped gateway heartbeat 2026-05-09 14:53:42 +08:00
Frank Song 3dfd692d75 Localize session jump controls 2026-05-09 10:03:27 +08:00
Frank Song e8fd8dac5d Persist login rate limit attempts 2026-05-08 20:48:41 +00:00
Frank Song 431705e498 Remove dead Kanban start i18n key 2026-05-08 20:48:37 +00:00
Frank Song ccdc055c36 Fix workspace prefix sentinel handling 2026-05-08 16:40:17 +00:00
Frank Song 8c02bfacd2 Restore explicit tool-segment reset calls for legacy assertions 2026-05-08 15:37:09 +00:00
Frank Song c1a9d7ce79 fix: overwrite session usage per turn 2026-05-08 15:37:09 +00:00
Frank Song 82c7367cef Add interim_assistant streaming path to WebUI 2026-05-08 15:37:09 +00:00
Frank Song 7e2709e281 fix: add request wedge diagnostics 2026-05-08 15:37:08 +00:00