Skip to content

0.7.1 candidate review: Assistant mode controls, Library dark menu, window snap, light-bar logo - #65

Closed
SashaMIT wants to merge 4 commits into
feat/0.7.1-integrationfrom
feat/assistant-modes-in-sidebar
Closed

SashaMIT wants to merge 4 commits into
feat/0.7.1-integrationfrom
feat/assistant-modes-in-sidebar

Conversation

@SashaMIT

@SashaMIT SashaMIT commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Four small fixes from clicking through the #64 candidate on a source Home (setup-source-home.sh → mac-source-home-restart.sh, Sash's account). Stacked on feat/0.7.1-integration at 093b51c; one commit per fix, no Rust changes.

1. Assistant: mode controls move to the sidebar and show only when backed (d6fb946)

The Chat / Build / Studio bar above the transcript (plus "Copy conversation") is removed. The same data-assistant-mode buttons now live in the Sash sidebar: Chat|Build as the segmented control, Studio as a nav row between Home and Settings. Your typed controller, workspace fields (activeMode, sessionMode, per-session studio) and string gates are unchanged.

Why hide rather than restyle. Applying UI ≠ authority to the controls themselves:

  • Build is a saved label today — agent-live.js / harness-host.js never read the mode, so a Build turn is byte-identical to a Chat turn. The segment stays hidden behind MODE_CAPABILITY.build = false until a run actually consumes the mode. Flipping that one flag brings the segment back in place.
  • Studio appears when offers_list advertises an image.generate / video.generate offer, reusing your eligibleStudioOffers filter (now exported from assistant.js). No offer → no row; that is the same "honest absence" Studio's own empty state already expresses, one level earlier.
  • A session saved in a mode the Home no longer backs opens as Chat unless it still owns an active Studio run (attachment preserved). Because the segment is hidden, the Studio row toggles back to Chat.
  • "Copy conversation" dropped; per-message and code-block copy in the transcript remain. Home's assistant:transcript.markdown:write clipboard policy entry is now unused — left for you since it's Home's file.

Gates. assistant-convergence-browser-smoke no longer clicks all three buttons; on the text-only fixture it asserts Build and Studio are absent and Chat is pressed. I also ran the positive case locally with an image.generate offer added to the fixture (Studio row appears, toggles in and out, #assistant-studio shows/hides). home-agent-shell-smoke bans the bar and the copy button and requires the capability gating.

2. Library: theme the … menu and make the sidebar seam flush (1a9e86a)

The context menu and submenus were hardcoded to a light fill and ink, so they rendered white in dark mode. They now use --menu-fill (the same fill Home GUI's menus use), --ink, --muted, --line, with a light override under data-el-theme="light". The shell grid reserved a 10px column for the sidebar resizer that showed as a strip of --bg; the column is now 0px and the handle overlays the seam. Resize math is delta-based and unchanged.

3. Home GUI: dragging a window to the top edge no longer maximizes it (2b7e561)

Top-edge snap target removed from snapTargetForPointer. Maximize stays on the traffic-light button; side/corner tiles and drag-to-Spaces are unchanged.

4. Home GUI: restore the ink wordmark used on the light bar (2d062ff)

style.css swaps the menu-bar and About logos to ./elastos-logo-ink.svg under the light theme, but the asset was not carried across in the 01b3b1b port, so Light and Auto-on-light showed a broken image. Restored byte-for-byte from a56b187: same mark and gradients, wordmark lettering in #1d2438 (the light --el-text). No inversion, no brand-colour change.

Checks

home-entropy-check, browser-entropy-check, home-shell-regression-smoke, home-agent-shell-smoke, people-discovery-smoke, assistant-convergence-browser-smoke, assistant-progress-browser-smoke, model-selection-browser-smoke, model-management-browser-smoke, browser-window-close-handshake.test — all pass locally on 2d062ff.

Part of #93.

SashaMIT and others added 4 commits September 13, 2026 13:44
The Chat / Build / Studio bar above the transcript (plus Copy conversation)
is removed. The same data-assistant-mode buttons now live in the Sash
sidebar: Chat|Build as the URUX segmented control, Studio as a nav row
between Home and Settings. Anders' typed controller, workspace fields and
string gates are unchanged.

UI ≠ authority: a mode control is visible only when the Runtime backs it.
Build is a saved label today (no run reads it), so the segment stays hidden
behind MODE_CAPABILITY. Studio appears once offers_list advertises an
image.generate or video.generate offer (eligibleStudioOffers, exported from
assistant.js). A session saved in a mode the Home no longer backs opens as
chat unless it still owns an active Studio run. Because the segment is
hidden, the Studio row toggles back to chat.

Copy conversation is dropped; per-message and code-block copy in the
transcript remain.

Gates: convergence smoke asserts honest absence on the text-only fixture;
shell smoke bans the bar, the copy button, and requires capability gating.

Co-authored-by: Cursor <cursoragent@cursor.com>
The context menu and its submenus were hardcoded to a light fill and ink,
so they rendered white in dark mode. They now use --menu-fill (the same
fill Home GUI's menus use), --ink, --muted and --line, with a light
override on data-el-theme="light".

The shell grid reserved a 10px column for the sidebar resizer, which
showed as a strip of --bg between the sidebar and the list. The column is
now 0px and the resizer overlays the seam, so the panes sit flush with
only the hairline between them. Resize math is delta-based and unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
The top-edge snap target locked a dragged window into the maximized
state. Maximize stays on the traffic-light button; side and corner tiles
and the drag-to-Spaces gesture are unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
style.css swaps the menu-bar and About logos to ./elastos-logo-ink.svg
under data-el-theme="light", but the asset was not carried across when
the shell chrome was ported (01b3b1b), so Light and Auto-on-light showed
a broken image. Restored byte-for-byte from a56b187: the same glyph and
brand gradients, wordmark lettering in #1d2438 (the light --el-text). No
inversion, no colour change to the brand mark.

Co-authored-by: Cursor <cursoragent@cursor.com>
@SashaMIT

Copy link
Copy Markdown
Contributor Author

CI note: source-gate fails in scripts/check-wci-alignment.sh (installer banner / Linux-preview wording). It fails identically on the base commit 093b51c and on #64's own run, so it's inherited from the integration branch, not introduced here. All node gates that cover these four commits pass locally on 2d062ff.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

All four commits here (d6fb94633…2d062ff99) are already in fix/0.7.1-security as 5894b2f92, e77665c3e, 26d0072e6, b038bdcd7, so this PR is superseded by Anders' branch. The follow-on wallpaper/Library work is now #67, stacked on fix/0.7.1-security.

@irzhywau irzhywau added this to the 0.7.1 milestone Sep 29, 2026
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Closing: all four commits are already on feat/0.7.1-models (5894b2f, e77665c, 26d0072, b038bdc), as agreed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants