haruai
ead92d7078
fix: stop reconnecting on protocol mismatch ( #98414 )
...
* fix: stop reconnecting on protocol mismatch
* fix(ui): stop protocol mismatch reconnects
* test(ui): assert protocol mismatch recovery copy
* test(ui): count gateway reconnect attempts
* test(gateway): keep detail-less reconnect case typed
* test(gateway): keep pairing retry fixture typed
---------
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 07:43:33 +01:00
Peter Steinberger
6e71b0bf30
fix(ui): reopen web terminals without stale content ( #100665 )
2026-07-06 07:42:38 +01:00
Peter Steinberger
ef269f2689
improve(ui): declutter the Cron Jobs page into compact scannable rows ( #100646 )
2026-07-06 07:29:02 +01:00
heichl_xydigit
00f5df24e5
fix(webchat): keep context indicator visible with stale token data ( #89772 )
...
* fix(webchat): keep context indicator visible with stale token data
The context usage indicator was disappearing after sending a message because
totalTokensFresh was set to false during the run, even though we had valid
token count data from before the message was sent.
Changes:
- Modified getContextNoticeViewModel to show the indicator even when
totalTokensFresh is false, as long as totalTokens is non-zero
- Added isStale flag to indicate when token data is not fresh
- Applied subtle visual styling for stale data (lighter colors, 5% opacity)
- Added "(updating)" suffix to the percentage text and title when stale
- Updated tests to verify the new behavior
Fixes #89662
* test(ui): cover stale context indicator behavior
* docs(changelog): note Control UI fix
---------
Co-authored-by: 黑承亮0668000844 <bladin@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 06:44:41 +01:00
Ben.Li
b3ba030707
fix(ui): show cron job model selection ( #95341 )
...
* fix(ui): show cron job model selection
* fix(ui): scope quick-create cron model selection
* test(ui): cover cron model quick create
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 06:43:40 +01:00
pick-cat
ea99b96ddd
fix(ui): preserve live tool stream order ( #93184 )
...
* fix(ui): preserve live tool stream order
* chore: trigger CI
* refactor(ui): preserve causal tool stream ordering
* docs(changelog): note Control UI fix
* test(ui): use current tool event contract
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 06:43:05 +01:00
Peter Steinberger
89f911f322
refactor(ui): consolidate sidebar navigation contract ( #100612 )
...
* fix(ui): restore sidebar navigation contract
* refactor(ui): remove duplicate sidebar navigation model
2026-07-06 06:30:57 +01:00
Wynne668
f36f3f30ea
fix(ui): recover from stale Control UI bundles ( #99111 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 05:26:49 +01:00
Goutam Adwant
ae6da5bc77
fix(ui): surface coalesced update restarts ( #93082 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 05:26:14 +01:00
Peter Steinberger
07e2d633cc
feat: show auto-detected provider plans and billing ( #100520 )
...
* feat(providers): auto-discover usage billing
* feat(ui): show provider plans and billing
* fix(ui): translate provider billing labels
2026-07-06 04:53:09 +01:00
Peter Steinberger
c064cae040
feat(ui): preview GitHub issues and pull requests on hover ( #100434 )
...
* feat(ui): add GitHub link hover cards
* chore(ui): sync GitHub hover card copy baseline
* docs(changelog): defer GitHub preview entry
2026-07-06 03:11:46 +01:00
brokemac79
49ae7ec065
[codex] Fail closed pair slash command routing ( #98262 )
...
* fix: keep pair qr from widening gateway bind
* fix: honor plugin activation for slash reservations
* fix: authorize spaced slash commands
* fix: keep reserved commands out of manifest reservations
* fix: avoid manifest fail-closed for declined commands
* fix: gate manifest command fallback by auth
* fix: keep runtime command probe internal
* fix: scope spaced slash authorization
* fix: route spaced plugin slash commands
* docs: note spaced plugin command routing
* docs: note spaced plugin command routing
* docs: split command routing changelog follow-up
---------
Co-authored-by: brokemac79 <255583030+brokemac79@users.noreply.github.com >
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 02:55:58 +01:00
Peter Steinberger
4f8eeeaca9
fix(ui): bind stale run state to run identity ( #100527 )
...
Co-authored-by: Tiffany Chum <tiffanychum@users.noreply.github.com >
2026-07-06 02:33:40 +01:00
Peter Steinberger
286c020748
fix(ui): preserve autonomous tool failures ( #100514 )
...
* fix(ui): preserve autonomous tool failures
Co-authored-by: qingminlong <qing.minlong@xydigit.com >
* chore: defer release note to maintainer batch
---------
Co-authored-by: qingminlong <qing.minlong@xydigit.com >
2026-07-06 02:23:03 +01:00
Peter Steinberger
60cf7eaa00
feat(ui): make the sidebar session-first and minimal ( #100386 )
...
* feat(ui): bolder sidebar minimalism — pinned/chats session groups, compact icon footer, no brand header
* test(ui): align fixtures with single default pinned route; document pinned-cap invariant
* fix(ui): preserve sidebar session groups
* fix(ui): polish minimal sidebar behavior
* fix(ui): avoid duplicate pinned chat fallback
* docs(changelog): note sidebar layout refresh
* chore(i18n): preserve sidebar locale metadata
* fix(ui): reuse localized sessions label
* test(ui): follow localized sessions label
* chore(ui): trim sidebar landing churn
* docs(ui): update minimal sidebar guidance
2026-07-06 02:08:02 +01:00
Peter Steinberger
ff32076f78
feat(ui): add comparative cost analysis ( #100432 )
...
* feat(ui): add comparative cost analysis
* fix(usage): align cost buckets with request timezone
* test(ui): avoid shadowing cost fixture
* fix(usage): align session daily timezone buckets
* test(usage): include day offset in cache keys
* fix(ui): ship translated cost analysis strings
* fix(ui): scope cost window analysis
* chore(ui): refresh locale metadata
* chore(ui): refresh locale metadata
2026-07-05 23:58:40 +01:00
haruai
ff440393da
fix: ignore stale approval resolve errors ( #98394 )
...
* fix(ui): scope approval decision results
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
* docs(changelog): credit approval race fix
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
2026-07-05 23:06:18 +01:00
Peter Steinberger
51771c3a14
feat(ui): declutter the Control UI sidebar with customizable pinned nav and a More section ( #100296 )
...
* feat(ui): declutter sidebar with pinned nav, More section, and customize menu
* test(ui): normalize sidebar e2e labels
* docs: refresh generated docs map
* fix(ui): keep tablet navigation drawer expandable
* chore(ui): refresh i18n raw-copy baseline
2026-07-05 21:56:51 +01:00
lzyyzznl
8e7cd40719
fix(ui): render direct tool-result image blocks inline in chat ( #50779 ) ( #100295 )
...
* fix(ui): render direct tool-result images inline
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
* test(ui): stabilize delayed-send scroll precondition
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
2026-07-05 12:48:29 -07:00
Peter Steinberger
8a187447f9
feat(ui): show provider costs in context popover ( #100379 )
...
* feat(ui): show estimated run cost
* feat(ui): show provider cost breakdown
2026-07-05 10:49:06 -07:00
Peter Steinberger
89ef6632de
feat(ui): scroll truncated sidebar session names on hover ( #100276 )
...
* feat(ui): scroll truncated sidebar session names on hover
Sidebar recent-session labels clip long titles with an ellipsis and there
was no way to read the tail without opening the session. Hovering a row
now animates the label's text-indent to slide the clipped tail into view
(speed-proportional duration, 300ms minimum) and snaps back quickly on
mouse leave. Resting ellipsis rendering is preserved by animating
text-indent instead of transforming an inner wrapper, since text-overflow
draws no ellipsis for atomic inline children. Respects
prefers-reduced-motion.
* fix(ui): harden sidebar session marquee
2026-07-05 10:29:46 -07:00
Peter Steinberger
db96218c05
feat(ui): show context usage details ( #100264 )
...
* feat(ui): show context usage details
* fix(ui): translate context usage labels
* fix(ui): translate context usage labels
* test: route e2e tempfile helper dependencies
* chore: drop superseded test routing change
* chore: drop superseded test routing change
* chore: drop superseded test routing change
2026-07-05 06:24:05 -07:00
Peter Steinberger
f9e194e4a1
fix(ui): keep login recovery accessible
2026-07-05 06:13:00 -07:00
Peter Steinberger
f886ce7339
fix(ui): keep the connection-error disclosure collapsed by default
...
Restore the maintainer-requested collapsed <details> failure callout that
a parallel session reverted, adapt the e2e expectations, and drop the
PR-side CHANGELOG edit (changelog is release-generation-owned).
2026-07-05 06:09:31 -07:00
Peter Steinberger
99845cfddf
fix(ui): mobile-optimize gateway dashboard login gate ( #100208 )
2026-07-05 06:07:52 -07:00
Peter Steinberger
86bf85fb35
fix(ui): publish mobile setup independently ( #100179 )
...
* fix(ui): publish mobile setup independently
* fix(ui): publish mobile setup independently
2026-07-05 01:54:58 -07:00
Peter Steinberger
1d9fb2773f
feat(ui): surface mobile pairing shortcuts ( #100157 )
2026-07-05 00:47:27 -04:00
Peter Steinberger
194d85e891
fix(ui): chat workspace panel leaves an empty gap when collapsed ( #100088 )
...
* fix(ui): remove reserved gap when chat workspace rail is collapsed
* fix(ui): remove reserved gap when chat workspace rail is collapsed
2026-07-04 22:53:27 -04:00
Shakker
65e12328aa
feat: refactor the Control UI architecture
...
Refactor the Control UI around route-owned page lifecycle and state while preserving existing behavior and design.
Prepared head SHA: bd51b6fa76
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com >
Reviewed-by: @shakkernerd
2026-07-04 23:19:38 +01:00