Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
498 commits
Select commit Hold shift + click to select a range
42a2381
Fix 1974: trap focus in kanban modals
May 10, 2026
4c95d92
test: add kanban modal locale parity regression
May 10, 2026
1e1a948
fix(i18n): localize /goal runtime status strings
May 10, 2026
2427f1e
test(kanban): harden locale-block parsing for quoted locales
May 10, 2026
ba51efe
test(kanban): assert profile-cache invalidation on profile delete
May 10, 2026
7ee41c9
fix: patch skills module-level caches on per-request profile switch
qxxaa May 10, 2026
2e6b360
fix(clarify): honor clarify.timeout config in webui prompts
May 10, 2026
9c37104
Add files via upload
eov128 May 10, 2026
1bec807
fix(1833): persist compression anchor summary for reload UI
May 10, 2026
84a172b
feat: add Xiaomi MiMo provider support
vikarag May 10, 2026
f665e50
fix: stamp profile on continuation session after context compression
qxxaa May 10, 2026
f793837
fix: wrap markdown code blocks on mobile
insecurejezza May 10, 2026
e64e024
Fix CLI session patch diff rendering
May 10, 2026
1cf0ff0
feat: live context window status tracking during streaming
dobby-d-elf May 10, 2026
a300d9a
Drop configured provider model badges
dobby-d-elf May 10, 2026
56d68b7
fix: keep live context metering session-scoped
dobby-d-elf May 10, 2026
2a34a12
fix: prefer latest compressed session segment
ai-ag2026 May 10, 2026
c3cf8b1
feat: add read-only session lineage report
dso2ng May 10, 2026
8226328
fix: avoid sidebar jumps when active session is visible
ai-ag2026 May 10, 2026
017a631
fix: keep explicit fork sessions out of compression lineage
ai-ag2026 May 10, 2026
8aed650
Stitch continued session transcripts in WebUI
Jellypowered May 10, 2026
fecfc5f
fix: reanchor live context usage updates
dobby-d-elf May 10, 2026
c6e4306
Stage 329: PR #1990 — fix(kanban): guard dispatcher actions while in-…
nesquena-hermes May 10, 2026
bf98ffe
Stage 329: PR #1991 — fix(i18n): correct German profile_skill_count p…
nesquena-hermes May 10, 2026
7ce48de
Stage 329: PR #1993 — fix(kanban): invalidate profile cache for assig…
nesquena-hermes May 10, 2026
b01df72
Stage 329: PR #1995 — feat(kanban): trap focus in kanban modals + sta…
nesquena-hermes May 10, 2026
f44ead1
Stage 329: PR #1996 — test(kanban): modal locale parity regression by…
nesquena-hermes May 10, 2026
52c1053
chore: CHANGELOG for v0.51.35 — Release K (kanban polish + i18n DE)
nesquena-hermes May 10, 2026
9242305
fix(stage-329): zh-Hant locale parity for kanban_status_original_hint…
nesquena-hermes May 10, 2026
941c805
chore: CHANGELOG note for stage augmentation 9242305a
nesquena-hermes May 10, 2026
7c26783
Stage 330: PR #1992 — fix(ctl): bash 3.2 compatible variable check by…
nesquena-hermes May 10, 2026
26b7006
Stage 330: PR #1998 — fix(goal): localize /goal runtime status string…
nesquena-hermes May 10, 2026
7eced19
Stage 330: PR #2000 — fix(skills): patch module-level caches on per-r…
nesquena-hermes May 10, 2026
9060bdb
Stage 330: PR #2001 — fix(clarify): honor clarify.timeout config by @…
nesquena-hermes May 10, 2026
38b6df0
Stage 330: PR #2002 — i18n(zh): update Chinese language translation b…
nesquena-hermes May 10, 2026
a897ccf
Stage 330: PR #2005 — feat(provider): add Xiaomi MiMo provider suppor…
nesquena-hermes May 10, 2026
9b7aba6
Stage 331: PR #2004 — fix(compression): persist compression boundary …
nesquena-hermes May 10, 2026
c156e5a
Stage 331: PR #2006 — fix(compression): stamp profile on continuation…
nesquena-hermes May 10, 2026
f4d3e9e
Stage 331: PR #2011 — fix(sessions): prefer latest compressed segment…
nesquena-hermes May 10, 2026
b68d7c6
Stage 331: PR #2012 — feat(sessions): read-only session lineage repor…
nesquena-hermes May 10, 2026
44dc7d0
Stage 331: PR #2014 — fix(sessions): keep explicit fork sessions out …
nesquena-hermes May 10, 2026
c624770
Stage 331: PR #2015 — fix(sessions): stitch continued session transcr…
nesquena-hermes May 10, 2026
c7ab7cf
Stage 332: PR #1988 — fix(toast): lengthen auto-compression toast by …
nesquena-hermes May 10, 2026
f5a8a6f
Stage 332: PR #2007 — fix(mobile): wrap markdown code blocks on mobil…
nesquena-hermes May 10, 2026
2fb29e5
Stage 332: PR #2008 — fix(diff): CLI session patch diff rendering by …
nesquena-hermes May 10, 2026
cb27ab0
Stage 332: PR #2013 — fix(sessions): avoid sidebar jumps when active …
nesquena-hermes May 10, 2026
71aaad6
fix(stage-330): broaden chinese-locale test to accept both \uXXXX and…
nesquena-hermes May 10, 2026
4ba31f9
fix(docker_init): fall back when /tmp not root-writable (Railway)
michael-dg May 10, 2026
ce27499
Fix Stop button not refreshing after chat/start stream id
rhelmer May 10, 2026
d922845
chore: CHANGELOG for v0.51.36 (stage-330)
nesquena-hermes May 10, 2026
dc522ad
chore: CHANGELOG for v0.51.37 (stage-331)
nesquena-hermes May 10, 2026
024cd87
chore: CHANGELOG for v0.51.38 (stage-332)
nesquena-hermes May 10, 2026
ad290cc
Merge pull request #2016 from nesquena/stage-329
nesquena-hermes May 10, 2026
4f900d0
Merge remote-tracking branch 'origin/master' into stage-330
nesquena-hermes May 10, 2026
16535e1
Merge remote-tracking branch 'origin/master' into stage-331
nesquena-hermes May 10, 2026
c9d4100
Merge remote-tracking branch 'origin/master' into stage-332
nesquena-hermes May 10, 2026
ed18378
fix: prefer active provider for default model overlap
Michaelyklam May 10, 2026
952754a
Merge pull request #2019 from nesquena/stage-330
nesquena-hermes May 10, 2026
22991fa
Merge remote-tracking branch 'origin/master' into stage-331
nesquena-hermes May 10, 2026
a42adbe
Merge pull request #2020 from nesquena/stage-331
nesquena-hermes May 10, 2026
fe922d8
Merge remote-tracking branch 'origin/master' into stage-332
nesquena-hermes May 10, 2026
6fbb6e4
Merge pull request #2021 from nesquena/stage-332
nesquena-hermes May 10, 2026
96c1c98
Stage 333: PR #2017 — fix(docker_init): fall back when /tmp not root-…
nesquena-hermes May 10, 2026
83bce07
Stage 333: PR #2018 — fix(stop): refresh button after chat/start stre…
nesquena-hermes May 10, 2026
8824f3c
Stage 333: PR #2022 — fix(resolver): prefer active provider for defau…
nesquena-hermes May 10, 2026
2377216
Stage 333: PR #2009 — feat(context): live status tracking during stre…
nesquena-hermes May 10, 2026
567dc4d
chore: CHANGELOG for v0.51.39 — Release O (4-PR contributor batch)
nesquena-hermes May 10, 2026
b997067
Merge pull request #2029 from nesquena/stage-333
nesquena-hermes May 10, 2026
cb3284b
fix: harden quota probe subprocess handling
Michaelyklam May 10, 2026
d620f43
fix: prewarm skill imports outside env lock
Michaelyklam May 10, 2026
a27f1bf
Clarify one-shot cron schedules
May 10, 2026
128e734
Fix Xiaomi API key env detection
May 10, 2026
5dbf962
Merge PR #2030 into stage-334
nesquena-hermes May 10, 2026
02506ea
Merge PR #2032 into stage-334
nesquena-hermes May 10, 2026
c3d40ad
Merge PR #2033 into stage-334
nesquena-hermes May 10, 2026
9c471be
Merge PR #2034 into stage-334
nesquena-hermes May 10, 2026
6638175
fix: recover orphaned session backups on startup
ai-ag2026 May 11, 2026
7b6d91d
feat: add read-only session recovery audit
ai-ag2026 May 11, 2026
e5dc58b
docs: CHANGELOG v0.51.40 Release P
nesquena-hermes May 11, 2026
6422497
Fix session message identity dedup
May 11, 2026
2ead7da
fix: expose active run lifecycle in health
ai-ag2026 May 11, 2026
50acda3
Merge pull request #2037 from nesquena/stage-334
nesquena-hermes May 11, 2026
91f1e3d
Merge PR #2036 into stage-335
nesquena-hermes May 11, 2026
97b283c
Merge PR #2039 into stage-335
nesquena-hermes May 11, 2026
db32b70
Merge PR #2038 into stage-335
nesquena-hermes May 11, 2026
4bbed44
docs: CHANGELOG v0.51.41 Release Q
nesquena-hermes May 11, 2026
1483924
Merge pull request #2043 from nesquena/stage-335
nesquena-hermes May 11, 2026
90c3611
feat: expose session recovery audit and safe repair endpoints
ai-ag2026 May 11, 2026
a34ded8
feat: reconcile missing WebUI sidecars from state db
ai-ag2026 May 11, 2026
c710efb
docs: propose crash-safe turn journal
ai-ag2026 May 11, 2026
9f3f8ea
fix(recovery): close concurrency hazards in state.db sidecar reconcil…
nesquena-hermes May 11, 2026
7690e08
docs(rfcs): establish docs/rfcs/ convention and polish turn-journal RFC
nesquena-hermes May 11, 2026
8566462
feat: add MEDIA_ALLOWED_ROOTS env var for configurable /api/media whi…
watzon May 11, 2026
8178c5e
feat: add slack to cron delivery options
georgebdavis May 11, 2026
3fd2059
fix: validate workspaces on session import
Hinotoi-agent May 11, 2026
7e25c6f
docs: CHANGELOG v0.51.42 Release R
nesquena-hermes May 11, 2026
8c803c0
fix(tests): clear two test failures (one pre-existing, one bumped by …
nesquena-hermes May 11, 2026
0c26ab3
test(conftest): strip HERMES_WEBUI_SKIP_ONBOARDING env globally; rfcs…
nesquena-hermes May 11, 2026
9c9d65a
Merge pull request #2049 from nesquena/stage-336
nesquena-hermes May 11, 2026
7aa1a5f
docs: add first-run onboarding guide
May 11, 2026
186453e
Add worktree-backed session creation
May 11, 2026
2dbee50
feat(ux): collapse sidebar by clicking the active rail icon (fuses #1…
nesquena-hermes May 11, 2026
1a2cf28
test(conftest): block AWS IMDS probing + expand credential-strip allo…
nesquena-hermes May 11, 2026
db6857b
Address worktree session review notes
May 11, 2026
ba66872
fix(sidebar): align collapse CSS breakpoint with JS _isDesktopWidth (…
nesquena May 11, 2026
b13bc96
docs: CHANGELOG v0.51.43 Release S
nesquena-hermes May 11, 2026
640cf6e
Merge pull request #2054 from nesquena/feat/sidebar-collapse-fused
nesquena-hermes May 11, 2026
5a445e7
Fix duplicate assistant transcript merge
May 11, 2026
e3001d1
Merge PR #2048: [security] validate workspace on import
nesquena-hermes May 11, 2026
48cccbc
Merge PR #2052: docs: add first-run onboarding guide
nesquena-hermes May 11, 2026
44e7378
Merge PR #2053: feat: worktree-backed session creation
nesquena-hermes May 11, 2026
e0ecf2a
Merge PR #1970: feat: LM Studio provider with live model discovery
nesquena-hermes May 11, 2026
d86dcc1
Merge PR #2055: fix: duplicate assistant transcript merge
nesquena-hermes May 11, 2026
a6174d0
test(infra): hermetic network isolation — block all outbound from tests
nesquena-hermes May 11, 2026
2ca220e
fix(config): PR #1970 lmstudio branch must honor cfg.model.base_url f…
nesquena-hermes May 11, 2026
12cef73
fix(recovery): preserve worktree metadata + workspace + message_count…
nesquena-hermes May 11, 2026
1819ead
docs: CHANGELOG v0.51.44 Release T (5-PR batch + test network isolation)
nesquena-hermes May 11, 2026
23cfc99
fix(config): split hermes_cli and urlopen fallback in lmstudio branch…
nesquena-hermes May 11, 2026
6d83d16
test(infra): tighten IPv6 unique-local check + replace self-passing f…
nesquena-hermes May 11, 2026
d9bc836
test(infra): fixture swaps real functions via monkeypatch (CI-robust)
nesquena-hermes May 11, 2026
cd7107c
test(infra): identity check by qname (CI re-imports conftest under mu…
nesquena-hermes May 11, 2026
f00cb74
Merge pull request #2058 from nesquena/stage-337
nesquena-hermes May 11, 2026
5cd001d
feat: add crash-safe turn journal writer
ai-ag2026 May 11, 2026
b34643b
docs(contributors): refresh contributor stats to v0.51.44
nesquena-hermes May 11, 2026
b766b7f
Merge pull request #2060 from nesquena/contributors-refresh-v0.51.44
nesquena May 11, 2026
4b486f2
feat: record turn journal lifecycle events
ai-ag2026 May 11, 2026
1e8d65e
fix: keep explicit forks out of lineage report
dso2ng May 11, 2026
2cd1086
Fix session recovery polish
May 11, 2026
5efd287
fix: align fork lineage projection paths
dso2ng May 11, 2026
f6115b7
Fix custom provider name slugs with ports
May 11, 2026
c60078b
fix(ui): prevent stuck sidebar spinner on completed sessions (closes …
May 11, 2026
d30263b
test: allow top-level markdown docs
ai-ag2026 May 11, 2026
a0e9c06
Fix HERMES_HOME skill cache patching
May 11, 2026
c8d110a
test: align sidebar spinner state assertions
May 11, 2026
c0ccefd
test: add kanban locale parity check (refs #1973)
bergeouss May 11, 2026
18124ce
Refactor compression anchor visibility helpers
May 11, 2026
6a52edf
Fix stale inflight purge runtime lookup
May 11, 2026
c4b7a65
test: keep local context docs ignored
ai-ag2026 May 11, 2026
d04d48f
fix: harden turn journal submitted writes
ai-ag2026 May 11, 2026
c864ad4
fix: address turn journal lifecycle review
ai-ag2026 May 11, 2026
c3fea4d
fix: add report-only CSP header
ai-ag2026 May 11, 2026
80c1212
Merge branch 'master' into fix/csp-report-only
ai-ag2026 May 11, 2026
8554761
fix(logs): clipboard fallback + severity filter for Logs panel (#2081)
bergeouss May 11, 2026
0f8ba4d
docs(themes): align THEMES.md with Theme × Skin architecture
michael-dg May 11, 2026
281a57b
support slash commands implemented in hermes plugin
plerohellec May 9, 2026
7037b08
Merge PR #2088 into stage-338
nesquena-hermes May 11, 2026
d87b23e
Merge PR #2073 into stage-338
nesquena-hermes May 11, 2026
da6b897
Merge PR #2076 into stage-338
nesquena-hermes May 11, 2026
ee6c67f
Merge PR #2074 into stage-338
nesquena-hermes May 11, 2026
2bfd538
Merge PR #2063 into stage-338
nesquena-hermes May 11, 2026
4388cb1
Merge PR #2068 into stage-338
nesquena-hermes May 11, 2026
0662f09
Merge PR #2056 into stage-338
nesquena-hermes May 11, 2026
98b6925
Merge PR #2065 into stage-338
nesquena-hermes May 11, 2026
6a016da
Merge PR #2077 into stage-338
nesquena-hermes May 11, 2026
87bd9ea
docs: CHANGELOG Unreleased — stage-338 (9 PRs)
nesquena-hermes May 11, 2026
83de9d0
fix(providers): log warning when custom provider entry yields empty slug
nesquena-hermes May 11, 2026
85ae0ac
docs: CHANGELOG v0.51.45 Release U (9-PR batch + Opus SHOULD-FIX)
nesquena-hermes May 11, 2026
6b17051
Merge pull request #2091 from nesquena/stage-338
nesquena-hermes May 11, 2026
9db1da7
Merge PR #2084 into stage-339
nesquena-hermes May 11, 2026
0456fb5
Merge PR #2085 into stage-339
nesquena-hermes May 11, 2026
2a1244f
Merge PR #2089 into stage-339
nesquena-hermes May 11, 2026
f6ce791
Merge PR #2059 into stage-339
nesquena-hermes May 11, 2026
fd06915
Merge PR #2062 into stage-339
nesquena-hermes May 11, 2026
55fbe66
docs: CHANGELOG Unreleased — stage-339 (5-PR batch + turn-journal stack)
nesquena-hermes May 11, 2026
96ca83b
fix(security): drop unsafe-eval + add jsdelivr to CSP, sanitize plugi…
nesquena-hermes May 11, 2026
4443e58
docs: CHANGELOG v0.51.46 Release V (5-PR batch + 3 Opus SHOULD-FIX)
nesquena-hermes May 11, 2026
6b682a6
Merge pull request #2094 from nesquena/stage-339
nesquena-hermes May 11, 2026
52fedbc
feat: add per-cron toast notification toggle
ai-ag2026 May 11, 2026
0ee2a19
Merge PR #2100 into stage-340
nesquena-hermes May 11, 2026
e37c69c
fix(agent-health): treat stale running gateway as unknown
LumenYoung May 11, 2026
98c9a3d
test: tighten CI and console hygiene
ai-ag2026 May 11, 2026
ba3cc2c
feat(i18n): add Italian (it) locale
samuelgudi May 11, 2026
23a2ad8
fix(tests): update hardcoded locale counts for Italian (it)
samuelgudi May 11, 2026
02ecc5a
fix(tests): provide LOCALES on TestVoiceModePreferenceGate
nesquena-hermes May 11, 2026
4c2c119
docs: CHANGELOG Unreleased — stage-340 (4-PR contributor batch)
nesquena-hermes May 11, 2026
84e110d
i18n(it): complete cron_toast_notifications_* keys
nesquena-hermes May 11, 2026
27fff66
Merge pull request #2108 from nesquena/stage-340
nesquena-hermes May 11, 2026
e20eb2c
fix: skip budget-doubling title retry for reasoning-only responses (#…
nesquena-hermes May 11, 2026
de982d4
docs: add Hermes run adapter RFC
Michaelyklam May 11, 2026
2da4f10
Clarify worktree session archive/delete semantics
May 11, 2026
43677b0
docs(rfcs): add anti-speculative-implementation conventions guidance
nesquena-hermes May 12, 2026
6947970
docs: CHANGELOG stage-341 — close v0.51.47, open stage-341 Unreleased
nesquena-hermes May 12, 2026
d75b591
stage-341: apply Opus SHOULD-FIX (it i18n + short-circuit logger.debu…
nesquena-hermes May 12, 2026
306dd2b
Merge pull request #2110 from nesquena/stage-341
nesquena-hermes May 12, 2026
6e1e9fa
Add worktree status endpoint
May 12, 2026
4e88995
Prefer worktree retention responses in session UI
May 12, 2026
573fc25
fix(providers): load Codex quota from credential pool
starship-s May 12, 2026
ff0830d
fix(ui): smooth iPhone PWA bottom-edge bounce in chat
dobby-d-elf May 12, 2026
7492609
fix: guard empty array iteration for bash 3.2 compatibility
May 12, 2026
6e62355
Merge pull request #2113 from franksong2702/issue-2111-worktree-retai…
May 12, 2026
1c659f3
Merge pull request #2109 from franksong2702/issue-2057-worktree-status
May 12, 2026
4d64f6e
Merge pull request #2116 from starship-s/fix/codex-quota-pool-usage
May 12, 2026
08b6dc4
docs: CHANGELOG stage-342 — close v0.51.48, open Unreleased for #2109…
May 12, 2026
10cfcee
stage-342: apply Opus SHOULD-FIX — tighten worktree status _run_git t…
May 12, 2026
f3d4d64
Merge pull request #2118 from nesquena/stage-342
nesquena-hermes May 12, 2026
418848f
Merge pull request #2117 from ayushere/fix/ctlsh-bash32-empty-array
May 12, 2026
8b8fa0b
stage-343: add bash 3.2 compat regression tests + CHANGELOG
May 12, 2026
15d6203
Merge pull request #2119 from nesquena/stage-343
nesquena-hermes May 12, 2026
245288c
fix: bucket long-range daily token charts
Michaelyklam May 12, 2026
a41b4d5
fix: stack analytics usage cards on mobile
Michaelyklam May 12, 2026
7a16d09
fix: add Portuguese session management i18n
Michaelyklam May 12, 2026
2654967
docs: clarify compression anchor helpers
Michaelyklam May 12, 2026
8fa92c6
Fix manual compression proxy timeouts
May 12, 2026
dd543e4
fix: purge missing inflight sessions
Michaelyklam May 12, 2026
f1b2a21
feat: lazy-load full lineage segments
dso2ng May 12, 2026
442f01b
docs: document turn journal fsync tradeoff
Michaelyklam May 12, 2026
e03c197
fix: recover from stale deleted workspaces
dobby-d-elf May 12, 2026
b7c5ba6
Fix custom live model scoping
May 12, 2026
b718220
Fix login health probe credentials
May 12, 2026
f5f59a5
fix: audit turn journal terminal collisions
Michaelyklam May 12, 2026
516d942
refactor: reduce stale workspace recovery fix
dobby-d-elf May 12, 2026
b3f8bee
Fix settings system mobile version wrapping
May 12, 2026
76e611d
Preserve fallback provider credential hints
May 12, 2026
c5bad3e
i18n: add French (fr) locale
legeantbleu May 12, 2026
099fdaf
fix(ui): stabilize chat bottom scrolling on iPhone PWA
dobby-d-elf May 12, 2026
890d65f
Merge pull request #2132 into stage-344
May 12, 2026
effd332
Merge pull request #2123 into stage-344
May 12, 2026
76cf06a
Merge pull request #2137 into stage-344
May 12, 2026
45ac810
Merge pull request #2141 into stage-344
May 12, 2026
5603215
Merge pull request #2143 into stage-344
May 12, 2026
2cccb8a
Merge pull request #2120 into stage-344
May 12, 2026
13c3646
Merge pull request #2121 into stage-344
May 12, 2026
8520755
Merge pull request #2130 into stage-344
May 12, 2026
4c5a246
Merge pull request #2125 into stage-344
May 12, 2026
a06952a
Merge pull request #2140 into stage-344
May 12, 2026
8dd0b4e
Merge pull request #2139 into stage-344
May 12, 2026
23425b2
Merge pull request #2129 into stage-344
May 12, 2026
aa85bd2
Merge pull request #2138 into stage-344
May 12, 2026
1ee8627
Merge pull request #2135 into stage-344
May 12, 2026
c677c19
Merge pull request #2128 into stage-344
May 12, 2026
9c7eb42
Merge pull request #2142 into stage-344
May 12, 2026
7116c68
stage-344: maintainer fix for #2142 fr locale — add LOCALES tuple ent…
May 12, 2026
4ab6cd6
docs: CHANGELOG stage-344 — close v0.51.50, open Unreleased for 16-PR…
May 12, 2026
2def05f
stage-344: apply Opus SHOULD-FIX #1+#2 — #2128 multi-tab race + stale…
May 12, 2026
6297443
Merge pull request #2148 from nesquena/stage-344
nesquena-hermes May 12, 2026
b1f752a
feat: add provider quota refresh control
Jordan-SkyLF May 12, 2026
4b57b20
fix: guard stale stream writebacks
LumenYoung May 12, 2026
062ef74
fix: guard provider quota refresh fallback button state
Jordan-SkyLF May 12, 2026
20717a0
Merge pull request #2136 into stage-345
May 12, 2026
5f33901
Merge pull request #2150 into stage-345
May 12, 2026
9336161
docs: CHANGELOG stage-345 — close v0.51.51, open Unreleased for #2136…
May 12, 2026
9268f41
Merge pull request #2153 from nesquena/stage-345
nesquena-hermes May 12, 2026
41b16c7
feat: backport upstream stage-345 + migrate Claude/Nebula skins + res…
GeoffBao May 17, 2026
2a6b66e
fix(Cmd+K): handle uppercase K (Caps Lock) + surface new-session errors
GeoffBao May 17, 2026
dfc2c61
fix: send button stuck disabled + no thinking dots during pre-stream gap
GeoffBao May 17, 2026
6abef82
Fix CI test failures: align JS patterns with upstream test expectations
GeoffBao May 17, 2026
810c4cd
Fix last CI failure: move updateSendBtn call within 200-char test window
GeoffBao May 17, 2026
58b6357
Fix pre-stream UX: show thinking dots immediately on send
GeoffBao May 17, 2026
038e2b1
Resolve merge conflict: keep pre-stream thinking dots fix
GeoffBao May 17, 2026
8e764d1
Fix phantom thinking row on pre-stream Stop cancel
GeoffBao May 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion static/boot.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
async function cancelStream(){
const streamId = S.activeStreamId;
if(!streamId){if(typeof _abortPendingChatStart==='function')_abortPendingChatStart();if(S.busy)setBusy(false);return;}
if(!streamId){window._abortPendingChatStart?.();if(S.busy){setBusy(false);if(typeof removeThinking==='function')removeThinking();}return;}
try{
await fetch(new URL(`api/chat/cancel?stream_id=${encodeURIComponent(streamId)}`,document.baseURI||location.href).href,{credentials:'include'});
}catch(e){/* cancel request failed - cleanup below still runs */}
Expand Down
5 changes: 1 addition & 4 deletions static/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -6334,11 +6334,8 @@ function finalizeThinkingCard(){
}
}
function appendThinking(text=''){
// Guard: ignore if session was switched during an async SSE stream.
// The old stream's reasoning events can still fire after switch;
// without this check they would pollute the new session's DOM.
// Guard: ignore if no active session (e.g. switched away before stream start).
if(!S.session) return;
if(!S.activeStreamId) return;
$('emptyState').style.display='none';
let turn=$('liveAssistantTurn');
if(!turn){
Expand Down
Loading