openclaw/apps
Peter Steinberger 79e527335c
feat(macos): complete the native sidebar session menus (#163001)
* feat(macos): complete the native sidebar session menus

Add native sidebar appearance, involvement, assignment, grouping, copy and
navigation actions using existing Gateway contracts. Capture Gateway and
session identity for new mutations; validate paged Markdown consistency.
Keep iOS behavior and roster queries unchanged.

Production delta: +774/-75, net +699 lines. The approved growth covers the
web menu items and conditions, appearance picker, directory assignment,
and paged Markdown export. Group defaults and cloud-worker stop remain
in their coordinator-assigned follow-up lanes.

Docs: https://docs.openclaw.ai/platforms/mac/webchat

* fix(macos): wire sidebar menu actions to the window's Gateway connection

Native menu contents never mount their view tasks, leaving appearance,
assignment, copy/export, and window actions without a connection. Publish
the window's admitted Gateway snapshot and retain its exact lease for
requests, links, and navigation.

Keep directory and worktree data with the window. Refresh on admission,
window activation, and stale reads after 60 seconds; coalesce requests,
retain last-good data on failure, and cancel old owners on replacement.
Retry directory bypasses the TTL. iOS and palette defaults are unchanged.

Add rendered-menu coverage through the real Gateway wiring seam and
regressions for stale reads, failure preservation, retry, and reconnect.
The follow-up adds 21 production lines, bringing PR5a to 720 lines for
its menu conditions, appearance picker, assignment, and paged export.

* refactor(macos): use the shared sidebar eligibility policy in session menus

(cherry picked from commit 9de57c9327)

* fix(macos): use the shared sidebar eligibility for session deletion

Use one macOS eligibility policy for Delete and shared lifecycle-root protection
with Archive. Normalize optional run facts before enabling row deletion, matching
ui/src/lib/sessions/session-key.ts:400 and
ui/src/components/app-sidebar-session-navigation-logic.ts:205.

Wire-shaped eligibility regressions failed before the fix and now pass.
iOS and palette behavior remain unchanged.

(cherry picked from commit 64da15398d)

* test(macos): pass row eligibility context to the menu wiring proof

* style(macos): align sidebar menus with shared Swift lint rules
2026-10-01 15:10:55 -07:00
..
.i18n feat(macos): complete the native sidebar session menus (#163001) 2026-10-01 15:10:55 -07:00
android test(android): await post-history branch phase (#162953) 2026-10-02 02:47:24 +07:00
ios refactor(apps): deslop native clients (#162782) 2026-10-01 18:07:57 +00:00
linux refactor(installer): share standalone shell installer policy (#162652) 2026-10-01 13:01:25 -07:00
macos feat(macos): complete the native sidebar session menus (#163001) 2026-10-01 15:10:55 -07:00
macos-mlx-tts chore(deps): refresh dependencies through September 19 cutoff (#159401) 2026-09-27 19:33:08 -07:00
shared feat(macos): complete the native sidebar session menus (#163001) 2026-10-01 15:10:55 -07:00
swabble refactor(apple): deslop shared Swift packages second pass (#159386) 2026-09-27 14:35:55 +00:00