Peter Steinberger
c0444a632b
fix(ui): preserve sidebar icon path contracts
2026-08-21 18:36:16 -07:00
Peter Steinberger
6ddda14999
fix(codex): keep guardian startup and router tests within gates
2026-08-21 18:23:02 -07:00
Peter Steinberger
c55a01b21f
fix(codex): scope guardian trust and satisfy integration gates
2026-08-21 18:06:58 -07:00
Peter Steinberger
07ab9ee750
fix(codex): harden full app-server integration and lifecycle
2026-08-21 17:51:39 -07:00
Peter Steinberger
877fad25ed
feat(codex): upgrade app-server integration to 0.149.0
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-21 17:27:41 -07:00
Peter Steinberger
3bb1433b78
fix(ui): surface config open-file failures ( #127498 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 13:37:31 -07:00
Peter Steinberger
3ea90bdcdb
feat(ui): add Person grouping mode for sessions sidebar and sessions page ( #127346 )
...
* feat(ui): add Person grouping mode for sessions sidebar and sessions page
Sessions can now be grouped by their durable owner identity: the sidebar
Group-by menu gains a capability-gated Person mode (self first, humans by
label, agent identities after; ownerless rows keep their smart zones), and
the sessions page gains the matching person mode. Person section headers
render the owner avatar and profile label; the mock dev server now
advertises the multi-identity policy and carries explicit row owners the
way the gateway projects createdActor fallbacks.
* feat(ui): gate sessions-page Person grouping on the identity capability
Mirrors the sidebar: the Person option hides without
hasMultipleSessionSharingIdentities and a stored Person preference
renders as None until the capability returns.
2026-08-21 13:21:43 -07:00
ClawSweeper
229ce32e32
fix(ui): align run history dropdown text ( #127443 )
...
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 13:12:10 -07:00
Peter Steinberger
519877a317
fix(ui): surface session owner assignment failures ( #127431 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 13:09:31 -07:00
Peter Steinberger
1353ce0995
feat: run Codex sessions on approved paired devices ( #127202 )
...
* feat(codex): execute paired-device sessions over node carrier
* fix(node-host): preserve approved invocation session identity
* fix(codex): observe paired-node execution leases before handshake
* fix: fence paired-device placement and Codex execution owners
* fix: satisfy paired-device placement CI ownership guards
* fix(codex): reject credentialed paired-node URL parameters
* fix(codex): fence nested remote HTTP session credentials
* fix(codex): scrub node process URLs and preserve plaintext HTTP
* test(codex): republish node inventory after capability approval
2026-08-21 12:50:26 -07:00
Peter Steinberger
90d1c43f5a
fix(ui): announce custom theme import results ( #127380 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 12:17:27 -07:00
Sasan
6aced3350d
fix(ui): Model Providers usage cards stay empty after a failed usage.status ( #120301 )
...
* fix(ui): recover provider usage after transient gateway failures
Keep failed provider-usage Results cold across Models and Usage direct and preloaded paths. Preserve canonical Gateway lifecycle ownership, request epochs, and route provenance.
Co-authored-by: Sasan Sotoodehfar <sasan1200@gmail.com >
* test(ui): shrink provider assertion safety baseline
Drop the obsolete grandfathered non-null assertion after moving provider probe-result policy into its owner.
Co-authored-by: Sasan Sotoodehfar <sasan1200@gmail.com >
* test(ui): tolerate browser font geometry rounding
Match existing chat-layout two-pixel renderer tolerance on both completed-work spacing boundaries.
Co-authored-by: Sasan Sotoodehfar <sasan1200@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-21 11:59:55 -07:00
Ayaan Gazali
2213d569ce
fix(ui): clear terminal session activity indicators ( #120327 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-21 11:52:00 -07:00
SunnyShu
9a0e11df06
fix(ui): reach identity-menu footer controls with keyboard ( #122066 )
...
* fix(ui): restore identity menu footer keyboard navigation
Co-authored-by: SunnyShu0925 <shu.zongyu@xydigit.com >
* test(ui): synchronize identity menu hide lifecycle
* test(ui): keep identity keyboard proof in one menu lifecycle
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-21 11:48:36 -07:00
Josh Avant
ccbfa6c3a3
feat(ui): explain decision receipts in Activity ( #126007 )
...
* fix(audit): project safe decision receipt displays
* docs(agents): preserve audit display privacy
* fix(ci): satisfy audit receipt guardrails
2026-08-21 11:33:32 -07:00
Peter Steinberger
2bd6efb919
fix(ui): restore editable map-valued settings ( #127336 )
2026-08-21 11:13:21 -07:00
Peter Steinberger
7d70895ba3
perf(ui): skip video pacing during normal browser tests ( #127313 )
2026-08-21 10:59:07 -07:00
Peter Steinberger
f9b5693612
fix(ui): retire stale plugin lifecycle feedback ( #127273 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 10:32:36 -07:00
Onur Solmaz
1319e1e606
fix(providers): report request acceptance consistently ( #126028 )
...
* fix(providers): restore provider acceptance lifecycle
* fix(providers): cancel streams on acceptance failure
* test(amazon-bedrock): split stream lifecycle coverage
* refactor(providers): keep acceptance lifecycle private
* refactor(providers): make acceptance observation synchronous
* refactor(providers): narrow private observer safely
* fix(google): keep response hook within retry deadline
* test(ui): tolerate subpixel spacing variance
* test(ui): wait for durable draft before reload
2026-08-21 19:32:07 +03:00
ClawSweeper
975027aee9
fix(ui): remove redundant mobile header alerts ( #127235 )
...
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 09:18:52 -07:00
Peter Steinberger
7085604a26
fix(ui): correct Automations row semantics ( #127252 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 09:05:52 -07:00
Shakker
7b5430a2d3
test: cover durable compaction activity
2026-08-21 16:24:53 +01:00
Shakker
a5bac03e51
fix: preserve Codex compaction activity
2026-08-21 16:24:53 +01:00
Peter Steinberger
3ae7ba3194
fix(ui): copy Lobsterdex links through clipboard fallback ( #127194 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 08:13:49 -07:00
Vyctor H. Brzezowski
03d4b8a9c3
fix(ui): expose active split pane to assistive tech ( #127213 )
2026-08-21 11:37:36 -03:00
Peter Steinberger
2cbfade48b
fix(ui): copy task results through clipboard fallback ( #127181 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 07:31:58 -07:00
ClawSweeper
f94f945314
improve(ui): declutter Automations across desktop and mobile ( #127198 )
...
* improve(ui): declutter automations list
* test: align automation UI and process cleanup
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
---------
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 06:56:43 -07:00
ClawSweeper
7498391c81
improve: show condition activity in automation history ( #127200 )
...
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 06:55:32 -07:00
ClawSweeper
ebdb6115dd
feat(ui): compact mobile chat header ( #126788 )
...
* feat(ui): compact mobile chat header
* refactor(ui): move mobile status into session menu
* fix(ui): close mobile status menu before details
* test(ui): follow compact header actions
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
---------
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 06:54:41 -07:00
ClawSweeper
9050d9b0a7
fix(ui): align configured automation trigger status ( #126784 )
...
Vertically center the configured trigger label with the Advanced heading and cover the rendered geometry in Chromium.
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-21 06:23:18 -07:00
Jesse Merhi
efbcb57569
fix(control-ui): autocomplete model thinking levels ( #123507 )
...
* fix(control-ui): autocomplete model thinking levels
* fix(control-ui): keep thinking options model-current
* fix(control-ui): execute catalog thinking levels
* fix(control-ui): close stale think picker
---------
Co-authored-by: Jesse Merhi <openclaw@users.noreply.github.com >
2026-08-21 23:02:33 +10:00
Peter Steinberger
1dbcbb2fb0
fix(ui): keep segmented selections visible in forced colors ( #127165 )
...
* test(ui): cover segmented controls in forced colors
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
* fix(ui): preserve segmented selection in forced colors
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
* fix(ui): separate forced-color selection and focus
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 04:53:52 -07:00
Peter Steinberger
cb563bb16d
perf(test): speed up board provider snapshot observations ( #127163 )
2026-08-21 04:26:39 -07:00
Peter Steinberger
75c44b2b98
fix(ui): recover cloud worker saves after reconnect ( #127150 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 03:50:40 -07:00
Peter Steinberger
7ecc9f6049
perf(test): speed up server preference observations ( #127144 )
2026-08-21 03:40:30 -07:00
Peter Steinberger
d2d63a2c3f
fix: announce Worktrees operation failures ( #127114 )
...
* fix(ui): announce Worktrees operation failures
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
* test(ui): stabilize attachment URL lifecycle proof
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 03:16:43 -07:00
Peter Steinberger
5d8cd4c819
perf(test): speed up model setup state observations ( #127134 )
2026-08-21 02:40:20 -07:00
Peter Steinberger
be2f7c6a3d
perf(test): speed up Tasks page state observations ( #127121 )
2026-08-21 01:58:21 -07:00
Peter Steinberger
627f862e8e
perf(test): speed up new-session model control observations ( #127101 )
2026-08-21 01:20:01 -07:00
Peter Steinberger
0a0d343cf2
fix(ui): refresh active agent file content ( #127086 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b
Co-authored-by: Amp <amp@ampcode.com >
2026-08-21 01:13:55 -07:00
Peter Steinberger
8ac7dd254c
perf(test): speed up model provider page observation polling ( #127085 )
2026-08-21 00:40:36 -07:00
Peter Steinberger
46d09d1a28
perf(test): speed up Agents page observation polling ( #127063 )
2026-08-20 23:55:44 -07:00
Shakker
faa1cfc598
fix(ui): associate steering work by target run ( #126997 )
2026-08-21 07:45:40 +01:00
Shakker
b2d49afd8e
fix(ui): collapse completed pre-steer work
2026-08-21 07:45:40 +01:00
Shakker
d15f570742
fix: dismiss sidebar session menu tooltip ( #127044 )
...
Dismiss the sidebar session tooltip whenever its overflow menu opens, preserving unobstructed menu actions and stable row semantics.
Refs #127039 .
2026-08-21 07:14:13 +01:00
Peter Steinberger
f14cf6b910
perf(test): speed up pairing access polling ( #127047 )
2026-08-20 23:02:46 -07:00
Peter Steinberger
bed80ee645
fix(cron): reject malformed condition scripts before saving ( #127004 )
...
* fix(cron): reject malformed condition triggers
Validate newly authored cron condition scripts before persistence, return actionable Gateway errors, and preserve maintenance of malformed triggers shipped in existing releases.
* fix(cron): reject blank condition triggers
2026-08-20 22:42:06 -07:00
Vyctor H. Brzezowski
6c667989a8
fix(ui): soften active split-pane indication ( #126714 )
...
* fix(ui): soften active split-pane indication
* fix(ui): scope split-pane attenuation to split layout
* fix(ui): refine split-pane visual hierarchy
* test(ui): establish active split pane in visual proof
* test(ui): activate split pane through its header
* style(ui): format split-pane selectors
* fix(ui): preserve inactive split-pane controls
* fix(ui): finalize inactive split-pane styling
* fix(ui): preserve inactive split-pane actions
* Revert "fix(ui): preserve inactive split-pane actions"
This reverts commit 2cadd21346 .
* fix(ui): keep inactive split-pane status visible
* fix(ui): restore approved split-pane treatment
* fix(ui): keep inactive placement status visible
2026-08-21 02:41:32 -03:00
Peter Steinberger
e7cfff2167
feat(control-ui): stream live draft previews in the typing indicator ( #126994 )
...
* feat(control-ui): stream live draft previews in the typing indicator
Multi-identity sessions now show what a teammate is typing, not just that
they are typing: the composer's per-keystroke session.typing sends carry a
bounded tail of the draft (optional preview field, 400 code points max),
the gateway throttle re-emits on changed payloads at 250ms (boolean-only
stays at 1s, trailing edge keeps the latest draft), and the transcript
renders a per-actor bubble with the live text plus a blinking caret.
Actors without preview data keep the three-dot bubble.
Previews are ephemeral presence: never persisted, never part of the
session transcript or model context, excluded from aria-live regions, and
gated by the existing >=2-live-viewers, sharing-role, and incognito
checks. No new config surface.
* chore(protocol): regenerate Swift gateway models for typing preview
* fix(gateway): aggregate typing previews across same-actor connections
A boolean-only session.typing update from a second connection of the same
actor (another tab or device) erased their live draft preview, because
typing liveness aggregated per actor while the broadcast preview came only
from the latest request. Preview aggregation now lives with the connection
aggregation owner: updateTypingConnections tracks per-connection previews
and returns the newest non-empty preview among live connections, so the
broadcast keeps the active draft until its connection stops or expires.
Regression fails pre-fix (event lost its preview field).
2026-08-20 22:30:41 -07:00
Peter Steinberger
6f52e9fc2f
fix(telegram): preserve direct-message topics in config and cron writeback ( #127010 )
...
* fix(telegram): preserve direct message topics in target writeback
* test(ui): consolidate cron scheduler status coverage
2026-08-20 22:27:10 -07:00