Skip to content

fix: sidebar and interaction consistency: legible badges, one highlight scale, keyboard queue, one vocabulary - #169

Merged
chenweigao merged 4 commits into
mainfrom
fix/sidebar-consistency-20261015
Oct 16, 2026
Merged

chenweigao merged 4 commits into
mainfrom
fix/sidebar-consistency-20261015

Conversation

@chenweigao

Copy link
Copy Markdown
Owner

Stacked on #168, which is stacked on #167. Batch 4 changes the same sidebar files and localization tables, so only the last four commits are new here. After the earlier PRs merge I'll rebase this onto main and retarget it.

Summary

Fourth batch of the 2026-10-15 polish review (sidebar and interaction consistency), with every recommendation approved: one commit per area.

  • Tokens (132d835)
    • WorkbenchTheme.Fill (hover .045, selected .08, pressed .11, surface .035), Stroke.hairline and Radius (row 7, chip 5, card 10) replace eight hover strengths, ad-hoc selection fills and assorted radii in content views.
    • In lists with a keyboard row (slash commands, directories, file references, the turn rail), the keyboard row is selected and the pointer row hover. If both fall on one row, selected wins, so two rows never look chosen.
    • Disclosure rows, transcript process rows included, now hover at .045 and press at .11 (they were .025 / .05). Frames and paddings are unchanged.
  • Sidebar (35a9dd1)
    • Compact status badges cut a 1.25 pt gap out of the agent mark. An orange ! on an orange Claude, Qoder or OMP mark, or the blue dot on DeepSeek, stays legible, and the glass shows through the gap. Offline is wifi.slash everywhere.
    • The project header's highlight spans the whole row, count and + included.
    • The 项目 menu shows an ellipsis instead of a chevron that read like 置顶's fold.
    • Shortcut hints share one 11 pt size.
    • First run: 置顶 waits for a session it could pin, and with no machine configured the footer offers 添加机器… (⇧⌘N).
    • Task groups use square.stack.3d.up, remote machines server.rack, this Mac desktopcomputer.
  • Workbench queue (02a815b)
    • Rows have a focusable open target: Tab reaches it with or without Keyboard Navigation, Return or Space opens it, and VoiceOver reads a button. Group links stay separate controls.
    • 已查看 and 管理归属 show on focus as on hover. 标为已查看 is also in the context menu and is a VoiceOver action.
  • Terms (accc74f)
    • 会话 is Session / sessions (no "chat"), 工作台 is Workbench, 任务组 is Task Group(s), 机器 is Machine: 53 English values plus the call sites.
    • Menus read 新建会话 · ⌘N, 搜索项目与会话 (⌘K) and 下一个待处理会话 (⇧⌘J). The 新建 menu has 会话…, and every add-machine entry says 添加机器….
    • 13 new keys; 20 keys no code uses are removed.

Verification

  • Linux portable suite on clean head accc74f: 8/8, covering localization (1237 keys, both tables in step) and preview source lists (19 builds; the localization preview now compiles WorkbenchTheme.swift).
  • Linux WorkbenchCore + WorkbenchChecks: 58 PASS, including the dashboard projection with the new task-group symbol. The AppKit math test is skipped here.
  • Sidebar row and section heights, WorkbenchDisclosureStyle metrics and the model-picker row pitch are untouched; CI checks them.
  • Not run locally: there's no macOS SDK here, so the macOS job is the first compile.
  • Mac checks needed:
    • The badge gap on orange and blue marks in light and dark, hovered and selected.
    • The project header hover and press with +, and the 项目 menu hover.
    • The queue with Tab and VoiceOver, with Keyboard Navigation on and off.
    • Hover vs keyboard selection in the slash palette and the directory picker.
    • The stronger hover and press on transcript process rows.
    • Long English labels ("Task Groups", "Show active task groups") truncating.

🤖 Generated with Claude Code

chenweigao and others added 4 commits October 16, 2026 11:48
…ws never look hovered

- `WorkbenchTheme.Fill` (hover .045, selected .08, pressed .11, surface
  .035), `Stroke.hairline` (.08) and `Radius` (row 7, chip 5, card 10)
  replace eight hover strengths, ad-hoc selection fills and assorted
  radii in content views: disclosures, the slash-command palette, model
  and directory pickers, file references, the selection bar, find
  toggles, the turn rail and floating controls, file lists, plan and
  agent cards.
- Lists with a keyboard row (slash commands, directories, file
  references, the turn rail) draw it as `selected` and the pointer's row
  as `hover`. When both fall on one row, selected wins, so two rows never
  look chosen. Disclosure buttons take a `selected` state for this.
- Disclosure rows, transcript process rows included, now hover at .045
  and press at .11 (were .025 and .05). Frames and paddings are
  unchanged. Glass and reply-block radii keep their own values;
  MessageComposer keeps literals because check-composer.sh compiles it
  without the theme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…first-run sidebar

- Compact status badges cut a 1.25 pt gap out of the agent mark, so an
  orange ! on an orange Claude, Qoder or OMP mark, or the blue dot on
  DeepSeek, stays legible. The gap shows the glass; nothing is painted.
  Offline is `wifi.slash`, as in the full indicator and the environments
  list.
- The project header's highlight spans the row, count and + included,
  and a press shows on the whole row. The 项目 section menu shows an
  ellipsis instead of a chevron that read like 置顶's fold, with a hover
  fill and the label 项目视图选项. Shortcut hints (⌘K, ⌘, and ⇧⌘N) share
  one 11 pt size. Every sidebar highlight draws through
  `SidebarHighlight`; `SidebarMetrics.fill` and `cornerRadius` read the
  theme tokens.
- First run: the 置顶 invitation waits for a session it could pin. With
  no machine configured, the footer offers 添加机器… (⇧⌘N).
- Task groups use `square.stack.3d.up`; remote machines and 环境管理 use
  `server.rack`, so `desktopcomputer` only means this Mac.
- Copy: the search sheet is 搜索项目与会话, add-machine controls say
  添加机器…, empty lists say 新会话会出现在这里.
- The localization preview compiles WorkbenchTheme.swift; the sidebar
  preview app uses the same terms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…board icons and copy

- Queue rows have a focusable open target behind their content. Tab
  reaches it with or without Keyboard Navigation, Return or Space opens
  the session, and VoiceOver reads a button with the title and metadata.
  Group links stay separate controls. 已查看 and 管理归属 show on focus as
  on hover; 标为已查看 is also in the context menu and a VoiceOver action.
  Keyboard focus reads as selected, the pointer as hover.
- Task groups use `square.stack.3d.up` (dashboard, header, projection);
  the empty state's start button uses `square.and.pencil`; an agent that
  is not connected shows `wifi.slash` in the new-session machine list.
- Dashboard, header, onboarding and setup copy use the canonical terms:
  会话… in the 新建 menu, 添加机器… for every add-machine entry, 开始首个会话,
  连接并新建会话, and 机器 instead of 运行环境 in the new-session picker.
- Dashboard fills and radii use the theme tokens; the workbench preview
  app shows the task group symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- English values follow the canonical terms. 会话 is Session / sessions
  (no more chats or conversations for sessions), 工作台 is Workbench,
  任务组 is Task Group(s), 机器 is Machine: 53 values, each keeping its
  capitalization style.
- Menus: 新建会话 · ⌘N, 搜索项目与会话 (⌘K) and 下一个待处理会话 (⇧⌘J).
- English-literal keys that said task or conversation for a session move
  to Chinese keys in session terms: the Kimi load error, the /goal and
  first-message notices, and the missing execution environment.
  KimiWorkspaceView also takes the card and row radius tokens.
- Localization tables: 13 new keys for this batch; 20 keys no code uses
  any more are removed. LocalizationChecks expects 工作台 → Workbench.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T03:52:52.118066Z accc74f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chenweigao
chenweigao changed the base branch from fix/composer-panels-20261015 to main October 16, 2026 07:30
@chenweigao
chenweigao merged commit b3a08f8 into main Oct 16, 2026
3 checks passed
@chenweigao
chenweigao deleted the fix/sidebar-consistency-20261015 branch October 16, 2026 07:46
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.

1 participant