Skip to content

feat: implement desktop chat composer and capability states - #71

Merged
Mathis (echobt) merged 2 commits into
mainfrom
ux/desktop-03-chat
Oct 9, 2026
Merged

Mathis (echobt) merged 2 commits into
mainfrom
ux/desktop-03-chat

Conversation

@echobt

Copy link
Copy Markdown
Contributor

What changed

Implement D03 local desktop Chat: no-provider action gating and provider navigation, keyboard model picker below the heading, eight-line composer using native CSS field sizing, elapsed busy strip and actual cancellation, sidebar/Cmd+N new-chat flow without duplicate content-header actions, direct capability empty states, and duplicate prompt-error suppression. Preserve the existing Code composer contract.

Targets ux/desktop-01-kit (#70), not main.

How to try it

bun run build && bun run start; open #/home in local mode. Fill 2,500 characters, add a provider, use model-chip arrow keys/Enter/Escape, send through a slow provider and press Stop. Direct links to canvas/search-results/deep-research/image-gen/share/temp-chat show the shared local capability state.

Honest states

No-model sends/voice are disabled with aria-disabled. Add a provider navigates to provider setup. Direct local unsupported capabilities name the feature and offer provider setup. Existing session errors remain product-language cards.

Verification

Typecheck, ESLint, i18n audit and production build pass. Unit suite: 520 passed, one pre-existing conditional skip. Seven new registry/capability tests pass.

Real Electron Playwright: 1440/960 widths, light/dark themes, fresh profiles. Verified no-model controls/navigation, 2,500-character draft height 222 px with 20 px line-height, send bottom within 1 px, no textarea scrollbar arrows, nonintersecting picker with changed keyboard selection and Escape focus, timer 00:00 to 00:01, Stop in 43-100 ms, unchanged composer height 82 px, sidebar New chat/Cmd+N, six direct capability routes. Evidence: /root/omo-herdr-wt/hermes-docs-qa-docs-attempt2/.omo/evidence/D03/final-results.json and PNGs.

Full E2E: 88 passed, 156 failed. Not green. Shared /tmp inode exhaustion plus legacy Chat route integration caused failures; focused recovery runs also blocked. No failing assertion was removed or weakened.

Risk and rollback

Draft until parent applies the supplied shell patch outside D03's file allowlist: unavailable navigation remains visible and legacy #/chat needs shell dispatch after registry removal. Exact patch: /root/omo-herdr-wt/hermes-docs-qa-docs-attempt2/.omo/evidence/D03/parent-shell.apply_patch. Parent also owns required AGENTS.md update. Full DSK-07 not accepted until integration and rerun.

Remote composer/native account capability parity remains an M11 integration dependency with M12 backend endpoints; M09/M10 not claimed integrated. No merge/deploy.


Attestation

  • Rules read. I read AGENTS.md and relevant .rules/ files. Scoped changes follow them; parent-owned documentation/integration remains pending.
  • Error copy is product language. No new vendor/error internals in user copy.
  • Responsive and themed. Verified 960x900 and 1440x900 light/dark; minimum 960x640 not yet verified.
  • Security holds. No keys/session material added to source; renderer boundaries preserved; local mode requires no account.
  • Docs updated in this PR. AGENTS.md outside allowed scope; parent-owned update pending.
  • I verified this carefully. Real Electron acceptance and local checks run; full regression currently red, remaining integration recorded above.

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c92b39f0-cfe9-43c2-b4c6-c278c3ebe4e2

📥 Commits

Reviewing files that changed from the base of the PR and between 00e965a and a505464.


📒 Files selected for processing (12)
  • packages/app/src/screens/chat/desktop-chat.test.ts
  • packages/app/src/screens/chat/index.tsx
  • packages/app/src/screens/chat/live-chat.tsx
  • packages/app/src/screens/chat/model-composer.tsx
  • packages/i18n/locales/de/composer.json
  • packages/i18n/locales/en/composer.json
  • packages/i18n/locales/es/composer.json
  • packages/i18n/locales/fr/composer.json
  • packages/i18n/locales/ja/composer.json
  • packages/i18n/locales/ko/composer.json
  • packages/i18n/locales/pt-BR/composer.json
  • packages/i18n/locales/zh-Hans/composer.json

 _______________________________________________________________________________________________________________
< Make quality a requirements issue. Involve your users in determining the project's real quality requirements. >
 ---------------------------------------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR

🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@blacksmith-sh

blacksmith-sh Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Found 16 test failures on Blacksmith runners:

Failures

Test View Logs
tests/e2e/
bot-safety.spec.ts:102:3 › Preview Bot shares saved look, draft, pause and activity — 1
440 dark
View Logs
tests/e2e/
bot-safety.spec.ts:102:3 › Preview Bot shares saved look, draft, pause and activity — 1
440 light
View Logs
tests/e2e/
bot-safety.spec.ts:102:3 › Preview Bot shares saved look, draft, pause and activity — 9
60 dark
View Logs
tests/e2e/
bot-safety.spec.ts:102:3 › Preview Bot shares saved look, draft, pause and activity — 9
60 light
View Logs
tests/e2e/
chat-missing.spec.ts:18:1 › a failed deferred delete restores the Chat with an error
View Logs
tests/e2e/
chat-missing.spec.ts:43:40 › Deleted Chat shows truthful missing-page recovery — dark
View Logs
tests/e2e/
chat-missing.spec.ts:43:40 › Deleted Chat shows truthful missing-page recovery — light
View Logs
tests/e2e/
components.spec.ts:4:40 › Components catalog: families, variants and three-preview ceil
ing (dark)
View Logs
tests/e2e/
components.spec.ts:4:40 › Components catalog: families, variants and three-preview ceil
ing (light)
View Logs
tests/e2e/
composer-safety.spec.ts:25:3 › Code keeps cancelled and no-model drafts, locks pending
submits — dark
View Logs

...and 6 more test failures. View all on Blacksmith

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@echobt
Mathis (echobt) marked this pull request as ready for review October 9, 2026 14:16
@echobt
Mathis (echobt) changed the base branch from ux/desktop-01-kit to main October 9, 2026 14:16
@echobt
Mathis (echobt) merged commit e424012 into main Oct 9, 2026
5 of 18 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