Commit graph

191 commits

Author SHA1 Message Date
Michael Lam
9ca846eb8f feat: cap pinned sessions from sidebar 2026-05-19 20:50:26 -07:00
starship-s
37df7d76a4 fix(webui): prevent composer draft rollback on refresh 2026-05-19 13:31:12 -06:00
nesquena-hermes
86f52f67b8 Stage 386: PR #2581
# Conflicts:
#	api/streaming.py
2026-05-19 18:20:47 +00:00
nesquena-hermes
0585881511 Stage 386: PR #2583 2026-05-19 18:20:07 +00:00
dobby-d-elf
2a95c1e482 Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
starship-s
2e9ca283dc fix: display canonical cache hit percentage 2026-05-19 02:27:12 -06:00
Lumen Yang
a63ab310b5 fix(webui): preserve reconciled session invariants 2026-05-19 08:02:43 +00:00
Lumen Yang
f12fef280d fix(webui): clear stale prompts on external refresh
Force same-session external refreshes to dismiss stale approval and clarification prompts immediately so completed state.db updates do not leave the composer blocked.
2026-05-19 08:02:43 +00:00
Lumen Yang
467ef33a24 feat(webui): reconcile external session updates
When API server runs append messages directly to state.db, reconcile WebUI sidecar sessions with those canonical rows across API responses, model-facing streaming context, and active browser refresh.

Add append-only state.db merge helpers, metadata-only counts for refresh polling, and regression coverage for API visibility, context incorporation, and frontend refresh behavior.
2026-05-19 08:02:43 +00:00
Nanook Claw
b6b9deca4c
fix: refresh project move cache 2026-05-19 00:08:07 +00:00
nesquena-hermes
d161e9a074 Stage 383: PR #2528
# Conflicts:
#	CHANGELOG.md
2026-05-18 16:44:36 +00:00
Michael Lam
b76d698a79 fix: guard new conversation cold-start clicks 2026-05-18 06:48:05 -07:00
junjunjunbong
3a53592107 Add previous messaging session controls 2026-05-17 21:27:32 -07:00
nesquena-hermes
f731f1fa43 Stage 382: PR #2499 2026-05-18 03:43:01 +00:00
Dennis Soong
9b65e2440b fix: collapse WebUI compression continuations in sidebar 2026-05-18 08:35:38 +08:00
nesquena-hermes
935d9e6402 Stage 379: PR #2461
# Conflicts:
#	CHANGELOG.md
2026-05-17 23:35:18 +00:00
nesquena-hermes
46810bd4b2 Stage 376: PR #2457
# Conflicts:
#	CHANGELOG.md
2026-05-17 16:42:10 +00:00
nesquena-hermes
ccea8ed66f Stage 376: PR #2455
# Conflicts:
#	CHANGELOG.md
2026-05-17 16:42:10 +00:00
Michael Lam
f56ec1ec35 fix: label email gateway sessions 2026-05-17 02:49:25 -07:00
Frank Song
bd9a4924bf fix: clear stale active session spinner 2026-05-17 17:34:43 +08:00
starship-s
aecad0f427 [verified] Fix WebUI memory session lifecycle commits 2026-05-17 03:30:06 -06:00
Frank Song
fe55cf5b9e Refresh session context metadata on model changes 2026-05-17 13:27:40 +08: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
Hermes Agent
8f4d6c1431 Stage 368: PR #2391 — fix: reduce browser storage pressure by @Michaelyklam 2026-05-16 17:19:08 +00:00
Michael Lam
48b82d57db fix: reduce browser storage pressure 2026-05-16 08:44:04 -07:00
Michael Lam
3bb8c7b276 fix: guard localStorage quota writes 2026-05-16 07:31:44 -07:00
Frank Song
faedcab739 Preserve live agent timeline across session switches 2026-05-16 14:12:08 +08:00
Frank Song
2162dab4a5 Fix pending user row on active reattach 2026-05-16 10:34:55 +08:00
Dennis Soong
a145bf4364 fix: apply display titles in content search 2026-05-14 21:10:50 +08:00
Dennis Soong
143d9d8ef7 fix: reconcile stale sidebar display titles 2026-05-14 16:18:53 +08:00
Frank Song
996d4f9a8c Hide session lineage metadata in compact sidebar 2026-05-14 10:14:15 +08:00
Jordan SkyLF
2dfe765b60 fix: stabilize Firefox session sidebar scrolling 2026-05-13 11:30:06 -07:00
Hermes Agent
afe42b96c1 Merge pull request #2156 into stage-346
Issue #2057 Slice 2: Add guarded worktree remove action
2026-05-13 06:56:25 +00:00
Frank Song
02ca306ffc Consolidate session post-render processing 2026-05-13 11:50:31 +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
Hermes Agent
c677c19a8f Merge pull request #2128 into stage-344
Fix manual compression proxy timeouts (closes #2087)

# Conflicts:
#	CHANGELOG.md
2026-05-12 16:13:01 +00:00
Hermes Agent
23425b23c8 Merge pull request #2129 into stage-344
fix: purge missing inflight sessions (closes #2092)
2026-05-12 16:12:57 +00:00
Dennis Soong
f1b2a21bd4 feat: lazy-load full lineage segments 2026-05-12 18:02:49 +08:00
Michael Lam
dd543e4175 fix: purge missing inflight sessions 2026-05-12 02:57:37 -07: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
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
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
186453ea0e Add worktree-backed session creation 2026-05-11 12:12:40 +08:00
nesquena-hermes
2377216860 Stage 333: PR #2009 — feat(context): live status tracking during streaming by @dobby-d-elf 2026-05-10 18:16:59 +00:00
nesquena-hermes
fe922d83b0 Merge remote-tracking branch 'origin/master' into stage-332
# Conflicts:
#	CHANGELOG.md
2026-05-10 18:07:50 +00:00
nesquena-hermes
44dc7d05e8 Stage 331: PR #2014 — fix(sessions): keep explicit fork sessions out of compression lineage by @ai-ag2026 2026-05-10 17:09:21 +00:00
ai-ag2026
017a631b6c fix: keep explicit fork sessions out of compression lineage 2026-05-10 18:03:21 +02:00