Skip to content

feat(web): polish workbench UI and reading experience - #904

Merged
tt-a1i merged 2 commits into
mainfrom
ui/model-picker-refinement
Oct 24, 2026
Merged

tt-a1i merged 2 commits into
mainfrom
ui/model-picker-refinement

Conversation

@tt-a1i

@tt-a1i tt-a1i commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator

Problem

OpenPI Web's workbench had inconsistent settings controls and density, a fragmented landing/composer experience, and visually heavy trajectory and error presentations. Model/provider navigation, archived-chat access, tool evidence, and session-creation feedback also varied across desktop, mobile, and dark themes.

Value

This makes the primary Web workflows quieter and easier to scan while preserving existing session, draft, configuration, and recovery behavior. It improves keyboard and screen-reader semantics, touch targets, responsive layouts, provider recognition, and the readability of execution evidence.

Approach

  • Unify all settings sections with a shared workbench layout, consistent controls, responsive resource panes, refined palettes, and updated provider branding.
  • Replace shared settings selects with an accessible menu-button/radio-menu implementation that exposes the current selection through menuitemradio and aria-checked.
  • Compact and clarify the model picker; integrate workspace selection into the landing composer; preserve the landing layout during creation and show pending feedback only in the initiating button.
  • Simplify the sidebar footer to Settings. Archived chats remain available and restorable through Settings; the shutdown component and API remain unchanged.
  • Rework execution trajectory into a linear reader with compact scope details and a dismissible, focus-restoring inspector overlay.
  • Separate numbered historical provider attempts from the final error, lighten retry presentation, prevent duplicate expanded tool summaries, and present tool evidence as quiet indented content.
  • Preserve existing drafts, keyboard flows, dirty-close guards, login flows, and browser-guide behavior. Rebuild the tracked web/dist/ assets.

Validation

  • bun run check — passed, including contracts, Web typecheck/build, formatting, lint, and repository typecheck.
  • bun run test:ui — 1620/1620 passed across 107 files.
  • bunx playwright test --config tests/web/playwright.config.ts — 164/164 passed on the final revision, including desktop/mobile, light/dark, keyboard/focus, accessibility, settings, model connections, trajectory, browser, Git, and workspace flows.
  • bun run test — 2395 passed, 8 skipped, 4 failed; the four failures are the existing unrelated baseline:
    • tests/extensions/plan-mode/result-rendering.test.ts: two OSC hyperlink/ANSI assertions.
    • tests/web/pi-coding-agent-entry.test.ts: two assertions affected by the inherited global NODE_PATH.
  • env -u NODE_PATH node --experimental-strip-types --test tests/web/pi-coding-agent-entry.test.ts — 11/11 passed.
  • Manually compared the live OpenPI and reference interfaces in Ego across desktop, mobile, expanded/collapsed, light/dark, and relevant interaction states. No new UI test cases were added; existing tests were adapted to the approved UI changes.

Impact

  • User-visible behavior: broad visual and interaction refinement across settings, model selection, landing/composer, sidebar, trajectory, errors, and tool evidence. The sidebar no longer exposes Archived or Quit; archived management remains in Settings.
  • Model-visible context/tools: none.
  • Runtime/lifecycle: no protocol or provider lifecycle redesign. Session creation retains the landing layout, the workspace picker is no longer blocked by the dormant overlay, and creation progress is visible in the initiating button.
  • Persisted config/data: no schema or migration changes; existing preferences and canonical writes are preserved.
  • Compatibility/risk: shared settings triggers now use menu-button semantics with radio items rather than combobox/menuitem semantics. Tracked production assets are regenerated. The four bun run test failures documented above are pre-existing and outside this PR's changed areas.

@tt-a1i
tt-a1i merged commit 1366f6a into main Oct 24, 2026
14 of 19 checks passed
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