diff --git a/desktop/src/__tests__/pages.test.tsx b/desktop/src/__tests__/pages.test.tsx
index b6833951..24e38544 100644
--- a/desktop/src/__tests__/pages.test.tsx
+++ b/desktop/src/__tests__/pages.test.tsx
@@ -159,7 +159,7 @@ describe('Content-only pages render without errors', () => {
expect(screen.queryByText('/internal-only')).not.toBeInTheDocument()
})
- it('EmptySession renders the launch composer', async () => {
+ it('EmptySession renders mascot and composer', async () => {
let container!: HTMLElement
await act(async () => {
container = render().container
@@ -167,8 +167,8 @@ describe('Content-only pages render without errors', () => {
await Promise.resolve()
})
expect(container.querySelector('textarea')).toBeInTheDocument()
- expect(container.innerHTML).toContain('What should we build?')
- expect(container.innerHTML).toContain('Ask Claude anything')
+ expect(container.innerHTML).toContain('New session')
+ expect(container.innerHTML).toContain('Ask anything')
})
it('EmptySession shows draft context usage before a session is created', async () => {
@@ -235,11 +235,11 @@ describe('Content-only pages render without errors', () => {
})
const { container } = render()
// With empty messages, the hero is shown
- expect(container.innerHTML).toContain('What should we build?')
+ expect(container.innerHTML).toContain('New session')
// ChatInput has a textarea
const textarea = container.querySelector('textarea')
expect(textarea).toBeInTheDocument()
- expect(textarea).toHaveAttribute('placeholder', 'Ask Claude anything. Type @ to mention files or tools')
+ expect(textarea).toHaveAttribute('placeholder', 'Ask anything...')
expect(textarea).toHaveAttribute('rows', '2')
expect(container.innerHTML).not.toContain('Preview')
// Cleanup
diff --git a/desktop/src/components/shared/RepositoryLaunchControls.tsx b/desktop/src/components/shared/RepositoryLaunchControls.tsx
index 05c1c27c..524fc448 100644
--- a/desktop/src/components/shared/RepositoryLaunchControls.tsx
+++ b/desktop/src/components/shared/RepositoryLaunchControls.tsx
@@ -260,7 +260,7 @@ export function RepositoryLaunchControls({
return (
-
+
{loading && workDir && (
diff --git a/desktop/src/i18n/locales/en.ts b/desktop/src/i18n/locales/en.ts
index 7257650a..57d030e5 100644
--- a/desktop/src/i18n/locales/en.ts
+++ b/desktop/src/i18n/locales/en.ts
@@ -679,9 +679,9 @@ export const en = {
'settings.general.webSearchSave': 'Save',
// ─── Empty Session ──────────────────────────────────────
- 'empty.title': 'What should we build?',
+ 'empty.title': 'New session',
'empty.subtitle': 'Start a fresh coding session. Claude is ready to help you build, debug, and architect your project.',
- 'empty.placeholder': 'Ask Claude anything. Type @ to mention files or tools',
+ 'empty.placeholder': 'Ask anything...',
'empty.addFiles': 'Add files or photos',
'empty.slashCommands': 'Slash commands',
'empty.failedToCreate': 'Failed to create session',
diff --git a/desktop/src/i18n/locales/zh.ts b/desktop/src/i18n/locales/zh.ts
index e0299fab..90f03b90 100644
--- a/desktop/src/i18n/locales/zh.ts
+++ b/desktop/src/i18n/locales/zh.ts
@@ -681,9 +681,9 @@ export const zh: Record
= {
'settings.general.webSearchSave': '保存',
// ─── Empty Session ──────────────────────────────────────
- 'empty.title': '我们该构建什么?',
+ 'empty.title': '新建会话',
'empty.subtitle': '开始一个新的编码会话。Claude 已准备好帮你构建、调试和架构你的项目。',
- 'empty.placeholder': '向 Claude 询问任何事。输入 @ 使用文件或工具',
+ 'empty.placeholder': '随便问点什么...',
'empty.addFiles': '添加文件或图片',
'empty.slashCommands': '斜杠命令',
'empty.failedToCreate': '创建会话失败',
diff --git a/desktop/src/pages/EmptySession.tsx b/desktop/src/pages/EmptySession.tsx
index a41651c2..60e1f179 100644
--- a/desktop/src/pages/EmptySession.tsx
+++ b/desktop/src/pages/EmptySession.tsx
@@ -533,17 +533,25 @@ export function EmptySession() {
return (
-
-
-
+
+
+

+
{t('empty.title')}
-
-
event.preventDefault()}
- onDrop={handleDrop}
- >
+
+ {t('empty.subtitle')}
+
+
+
+
+
+
+
event.preventDefault()}
+ onDrop={handleDrop}
+ >
{fileSearchOpen && (
handleInputChange(event.target.value, event.target.selectionStart ?? event.target.value.length)}
onKeyDown={handleKeyDown}
onPaste={handlePaste}
- className="min-h-[92px] flex-1 resize-none border-none bg-transparent py-4 text-[22px] leading-relaxed text-[var(--color-text-primary)] outline-none placeholder:text-[var(--color-text-tertiary)]"
+ className="flex-1 resize-none border-none bg-transparent py-2 leading-relaxed text-[var(--color-text-primary)] outline-none placeholder:text-[var(--color-text-tertiary)]"
style={{ fontFamily: 'var(--font-body)' }}
placeholder={t('empty.placeholder')}
- rows={3}
+ rows={2}
/>
-
+
{plusMenuOpen && (
@@ -693,29 +701,27 @@ export function EmptySession() {
/>
-
-
-
+
+