Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
The desktop Control UI session-panel lobster always receives the default successful run outcome, so failed and aborted runs can produce the wrong terminal reaction.
Steps to reproduce
- Render
openclaw-app-sidebar from current main with the desktop panel variant and a completed session whose status is failed or killed.
- Inspect the rendered
openclaw-lobster-pet runOutcome property.
- Repeat with the narrow
drawer variant.
Expected behavior
Both sidebar variants pass the latest terminal session outcome to the lobster: failed/timeout becomes error, killed becomes aborted, and successful runs remain ok. This was the shared-render behavior immediately before PR #103426.
Actual behavior
The drawer passes the resolved outcome, but the new desktop panel omits the property. The pet therefore keeps its default ok outcome on desktop and can cheer after a failed or aborted run.
OpenClaw version
Current main at 9e74dabad24c; introduced by 4a72a6cb2f9b / PR #103426.
Operating system
Browser-independent Control UI behavior; reproduced from the current source contract on macOS and targeted for Chromium proof.
Install method
Source checkout
Model
Not applicable
Provider / routing chain
Not applicable
Logs
Pre-#103426 shared render: panel/drawer both bind resolveLobsterRunOutcome(...).
Current main: drawer binds runOutcome; desktop panel omits it and retains the component default "ok".
Screenshots, recordings, and evidence
- Regression commit:
4a72a6cb2f9b (feat(ui): move app chrome into a topbar and dock the session workspace rail)
- Affected owner:
ui/src/components/app-sidebar.ts
- Outcome resolver and reaction contract:
ui/src/components/lobster-pet.ts
- No matching existing issue or PR was found in the maintainer archive search.
Impact and severity
- Affected: desktop Control UI users with the lobster pet enabled.
- Severity: low-to-moderate user-visible status error; no data loss.
- Frequency: deterministic after every failed, timed-out, or killed run whose terminal reaction is shown.
- Consequence: the UI can celebrate a failed or aborted run, contradicting the actual run state.
Additional information
The focused fix is to keep the new desktop panel and existing drawer bindings symmetric. This is separate from the in-flight vigil-presence fix, which changes the pet's internal reaction lifetime rather than the sidebar's input wiring.
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
The desktop Control UI session-panel lobster always receives the default successful run outcome, so failed and aborted runs can produce the wrong terminal reaction.
Steps to reproduce
openclaw-app-sidebarfrom currentmainwith the desktoppanelvariant and a completed session whose status isfailedorkilled.openclaw-lobster-petrunOutcomeproperty.drawervariant.Expected behavior
Both sidebar variants pass the latest terminal session outcome to the lobster:
failed/timeoutbecomeserror,killedbecomesaborted, and successful runs remainok. This was the shared-render behavior immediately before PR #103426.Actual behavior
The drawer passes the resolved outcome, but the new desktop panel omits the property. The pet therefore keeps its default
okoutcome on desktop and can cheer after a failed or aborted run.OpenClaw version
Current
mainat9e74dabad24c; introduced by4a72a6cb2f9b/ PR #103426.Operating system
Browser-independent Control UI behavior; reproduced from the current source contract on macOS and targeted for Chromium proof.
Install method
Source checkout
Model
Not applicable
Provider / routing chain
Not applicable
Logs
Screenshots, recordings, and evidence
4a72a6cb2f9b(feat(ui): move app chrome into a topbar and dock the session workspace rail)ui/src/components/app-sidebar.tsui/src/components/lobster-pet.tsImpact and severity
Additional information
The focused fix is to keep the new desktop panel and existing drawer bindings symmetric. This is separate from the in-flight vigil-presence fix, which changes the pet's internal reaction lifetime rather than the sidebar's input wiring.