Skip to content

Commit d323bad

Browse files
committed
rebrand: clean up残留 DeepV Code -> Easy Code in user-facing strings
1 parent a28d011 commit d323bad

30 files changed

Lines changed: 60 additions & 57 deletions

DEEPV.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,6 @@ Easy Code (Monorepo)
109109
- Easy Code 项目目录命名约定(极易搞错,务必记住):全局配置目录是 `~/.deepv/`(用户家目录下),项目级配置目录是 `<projectRoot>/.deepvcode/`(项目根目录下)。两个目录名前缀不同是为了规避命名冲突,绝不能混用:项目里出现 `.deepv` 是错误,全局出现 `.deepvcode` 也是错误。`PROJECT_DIR_PREFIX = '.deepvcode'` 定义在 `packages/core/src/utils/paths.ts`。例如飞书凭证只走全局,固定写入 `~/.deepv/feishu-credentials.json`,不接受 projectRoot 参数。
110110
- 用户要求交流时:1) 不使用浮夸的赞美和认同;2) 保持独立思辨能力,对用户的说法进行批判性判断,不盲从(用户说的不一定都对);3) 用词严谨专业,不使用网络用语。
111111
- 始终使用中文进行交流。
112+
113+
## DeepV Code Added Memories
114+
- DeepV Code/Easy Code 品牌改名时,MCP OAuth 相关的 "Gemini" 标识符必须保留不改——因为对外需以 Gemini 身份才能被第三方 OAuth 服务授权识别(对方系统只认 Gemini)。品牌改名只针对用户可见的文案提示,不动这类对外身份标识符。

packages/cli/src/acp/acpCommandHandler.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe('CommandHandler', () => {
6464
expect(handled).toBe(true);
6565
expect(ctx.sendMessage).toHaveBeenCalledTimes(1);
6666
const msg = ctx.sendMessage.mock.calls[0][0] as string;
67-
expect(msg).toMatch(/DeepV Code Help/);
67+
expect(msg).toMatch(/Easy Code Help/);
6868
expect(msg).toMatch(/\/help/);
6969
});
7070

packages/cli/src/acp/acpRpcDispatcher.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class GeminiAgent {
6666
{
6767
id: AuthType.USE_PROXY_AUTH,
6868
name: 'DeepV proxy auth',
69-
description: 'Use DeepV Code proxy authentication',
69+
description: 'Use Easy Code proxy authentication',
7070
_meta: {
7171
'api-key': {
7272
provider: 'deepv',
@@ -80,7 +80,7 @@ export class GeminiAgent {
8080
],
8181
agentInfo: {
8282
name: 'dvcode',
83-
title: 'DeepV Code',
83+
title: 'Easy Code',
8484
version,
8585
},
8686
agentCapabilities: {

packages/cli/src/acp/commands/about.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class AboutCommand implements Command {
2828
?.selectedAuthType ?? 'proxy-auth';
2929

3030
const lines = [
31-
'DeepV Code Info:',
31+
'Easy Code Info:',
3232
`- Version: ${cliVersion}`,
3333
`- OS: ${process.platform}`,
3434
`- Node: ${process.version}`,

packages/cli/src/acp/commands/extensions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ import type {
1818
*/
1919
export class ExtensionsCommand implements Command {
2020
readonly name = 'extensions';
21-
readonly description = 'Manage DeepV Code extensions';
21+
readonly description = 'Manage Easy Code extensions';
2222

2323
async execute(
2424
_context: CommandContext,
2525
_args: string[] = [],
2626
): Promise<CommandExecutionResponse> {
2727
return {
2828
name: this.name,
29-
data: 'Extension management over ACP is not yet available in DeepV Code. Use the interactive TUI for now.',
29+
data: 'Extension management over ACP is not yet available in Easy Code. Use the interactive TUI for now.',
3030
};
3131
}
3232
}

packages/cli/src/acp/commands/help.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export class HelpCommand implements Command {
2626
.sort((a, b) => a.name.localeCompare(b.name));
2727

2828
const lines = [
29-
'DeepV Code Help:',
29+
'Easy Code Help:',
3030
'',
3131
'### Basics',
3232
'- **Add context**: Use `@` to reference files (e.g. `@src/myFile.ts`).',

packages/cli/src/acp/commands/memory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class MemoryAddSubCommand implements Command {
6969

7070
export class MemoryCommand implements Command {
7171
readonly name = 'memory';
72-
readonly description = 'Manage DeepV Code memory';
72+
readonly description = 'Manage Easy Code memory';
7373
readonly subCommands: Command[] = [
7474
new MemoryShowSubCommand(),
7575
new MemoryRefreshSubCommand(),

packages/cli/src/config/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export async function parseArguments(extensions: Extension[] = []): Promise<CliA
8989
.scriptName('dvcode')
9090
.usage(
9191
'$0 [options]',
92-
'DeepV Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode',
92+
'Easy Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode',
9393
)
9494
.option('model', {
9595
alias: 'm',
@@ -222,7 +222,7 @@ export async function parseArguments(extensions: Extension[] = []): Promise<CliA
222222
.option('proxy', {
223223
type: 'string',
224224
description:
225-
'Proxy for DeepV Code client, like schema://user:password@host:port',
225+
'Proxy for Easy Code client, like schema://user:password@host:port',
226226
})
227227
.option('update', {
228228
alias: 'u',

packages/cli/src/gemini.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,7 @@ let titleRestoreInterval: NodeJS.Timeout | null = null;
10271027

10281028
function setWindowTitle(title: string, settings: LoadedSettings) {
10291029
if (!settings.merged.hideWindowTitle) {
1030-
const windowTitle = (process.env.CLI_TITLE || `🚀 DeepV Code - ${title}`).replace(
1030+
const windowTitle = (process.env.CLI_TITLE || `🚀 Easy Code - ${title}`).replace(
10311031
// eslint-disable-next-line no-control-regex
10321032
/[\x00-\x1F\x7F]/g,
10331033
'',
@@ -1070,13 +1070,13 @@ function setWindowTitle(title: string, settings: LoadedSettings) {
10701070
// 手动恢复标题的函数
10711071
function restoreWindowTitle() {
10721072
// 强制恢复标题
1073-
const title = currentWindowTitle || '🚀 DeepV Code';
1073+
const title = currentWindowTitle || '🚀 Easy Code';
10741074
process.stdout.write(`\x1b]2;${title}\x07`);
10751075
}
10761076

10771077
/**
10781078
* 🎯 使用 Checkpoint Summary 更新窗口标题
1079-
* 格式:🚀 <summary> - DeepV Code - <工作目录名>
1079+
* 格式:🚀 <summary> - Easy Code - <工作目录名>
10801080
* @param summary 生成的摘要(10字以内)
10811081
* @param settings 用户配置
10821082
* @param workspaceName 工作目录名(可选,默认使用当前工作目录)
@@ -1100,9 +1100,9 @@ export function updateWindowTitleWithSummary(
11001100
// 3. 获取工作目录名
11011101
const workspace = workspaceName || basename(process.cwd());
11021102

1103-
// 4. 构造新标题:🚀 <summary> | DeepV Code - <工作目录名>
1103+
// 4. 构造新标题:🚀 <summary> | Easy Code - <工作目录名>
11041104
const cleanSummary = summary.trim();
1105-
const newTitle = `🚀 ${cleanSummary} | DeepV Code - ${workspace}`;
1105+
const newTitle = `🚀 ${cleanSummary} | Easy Code - ${workspace}`;
11061106

11071107
// 5. 更新全局变量(标题保护机制会自动使用这个值)
11081108
currentWindowTitle = newTitle;
@@ -1125,8 +1125,8 @@ export function updateWindowTitleIcon(icon: string): void {
11251125
}
11261126

11271127
// Split the title to replace the first character (icon)
1128-
// Format: 🚀 summary - DeepV Code - workspace
1129-
// or: 🚀 DeepV Code - workspace
1128+
// Format: 🚀 summary - Easy Code - workspace
1129+
// or: 🚀 Easy Code - workspace
11301130
const titleParts = currentWindowTitle.split(' ');
11311131

11321132
if (titleParts.length > 0) {

packages/cli/src/ui/App.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,7 +1477,7 @@ const App = ({ config, settings, startupWarnings = [], version, promptExtensions
14771477
if (!isFeishuBotRunning) {
14781478
updateWindowTitleIcon(currentTitleIcon);
14791479
} else {
1480-
process.stdout.write(`\x1b]2;Feishu Gateway Mode | DeepV Code\x07`);
1480+
process.stdout.write(`\x1b]2;Feishu Gateway Mode | Easy Code\x07`);
14811481
}
14821482
}, [currentTitleIcon, isFeishuBotRunning]);
14831483

@@ -1506,7 +1506,7 @@ const App = ({ config, settings, startupWarnings = [], version, promptExtensions
15061506
);
15071507

15081508
// 🎯 构建通知消息(包含完整的任务信息,供 AI 理解)
1509-
const notificationText = `[DeepV Code - SYSTEM NOTIFICATION] Background task completed (Task ID: ${task.id}). Exit code: ${task.exitCode ?? 'unknown'}. Output:\n${task.output?.substring(0, 1000) || '(no output)'}`;
1509+
const notificationText = `[Easy Code - SYSTEM NOTIFICATION] Background task completed (Task ID: ${task.id}). Exit code: ${task.exitCode ?? 'unknown'}. Output:\n${task.output?.substring(0, 1000) || '(no output)'}`;
15101510

15111511
// 🎯 如果 AI 当前空闲,自动触发 AI 继续处理(静默模式,不显示用户消息)
15121512
if (streamingState === StreamingState.Idle) {
@@ -1609,7 +1609,7 @@ const App = ({ config, settings, startupWarnings = [], version, promptExtensions
16091609
setPendingBackgroundNotifications([]);
16101610

16111611
// 自动触发 AI 继续处理(静默模式,不显示用户消息)
1612-
submitQuery('[DeepV Code - SYSTEM NOTIFICATION] Background tasks have completed while you were busy. Please review the results above if necessary, and continue.', { silent: true });
1612+
submitQuery('[Easy Code - SYSTEM NOTIFICATION] Background tasks have completed while you were busy. Please review the results above if necessary, and continue.', { silent: true });
16131613
} catch (e) {
16141614
console.error('[App] Failed to process pending background notifications:', e);
16151615
}
@@ -1954,7 +1954,7 @@ const App = ({ config, settings, startupWarnings = [], version, promptExtensions
19541954
lastUserInteractionRef.current = Date.now();
19551955

19561956
const goalContinuePrompt =
1957-
'[DeepV Code ⏰ GOAL WATCHDOG]\n\n' +
1957+
'[Easy Code ⏰ GOAL WATCHDOG]\n\n' +
19581958
'⚠️ 系统检测到你在 /goal 模式下已经超过 1 分钟没有进行任何操作(没有调用工具也没有输出),' +
19591959
'但目标尚未完成,你也未调用 goal_achieved 工具。\n\n' +
19601960
'请立即执行以下检查:\n' +

0 commit comments

Comments
 (0)