From 83b6ecbca720b489046842c90dc210bd6f3e59ec Mon Sep 17 00:00:00 2001 From: monster Date: Mon, 16 Mar 2026 16:15:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E6=96=87=E6=A1=A3=E4=BB=A5=E5=8C=B9=E9=85=8D=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E5=89=8D=E7=AB=AF=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新控制台导航结构(默认分组、启动任务等) - 修正任务参数配置(移除开发工具选项,固定 OpenCode) - 重写任务开发页面布局(底部按钮、面板展开) - 更新与 AI 对话功能(重置上下文、斜杠命令、语音输入) - 修正提交代码变更流程 - 更新项目创建与设置(身份选择、环境变量、开发镜像) - 新增通知配置、IDE 辅助工具说明 - 更新企业管理后台导航项 - 修正常见问题 Made-with: Cursor --- frontend/doc.md | 158 ++++++++++++++++++++++++++++-------------------- 1 file changed, 93 insertions(+), 65 deletions(-) diff --git a/frontend/doc.md b/frontend/doc.md index 7cec1796..31c8aae4 100644 --- a/frontend/doc.md +++ b/frontend/doc.md @@ -8,6 +8,8 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 → 设计 → 开发 → 代码审查** 全流程。你可以用自然语言描述需求,让 AI 帮你写代码、做设计、做 Review。 +**入口说明**:首页(`/`)提供「开始使用」进入控制台;开发者广场(`/playground`)、公开任务(`/tasks/public`)可从首页或直接访问对应路径。 + --- ## 二、登录与账号 @@ -32,10 +34,11 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 登录后进入控制台,左侧是导航栏: -- **智能任务**:进入智能任务页,创建和管理 AI 开发任务 -- **代码审查**:配置 Git 机器人,自动审查 PR/MR -- **开发项目**:展示项目列表。点击「+」可**创建项目**(需输入项目名称并关联 Git 仓库),点击刷新图标可刷新列表。点击某个项目会展开子菜单:**项目**(进入项目文档页)、**需求**(进入需求列表,旁显示待处理数量)、**任务**(进入任务列表) -- **配置**:绑定 Git 身份、配置模型、宿主机等 +- **代码审查**:进入 Git 机器人页面,配置和管理代码审查机器人 +- **开发项目**:展示项目列表。点击「+」可**创建项目**,点击刷新图标可刷新列表。每个项目可展开子菜单显示其下的任务。另有 **默认** 分组,用于展示未关联到项目的任务 + - 点击「默认」进入新任务页(`/console/tasks`),可创建任务;默认分组旁的「+」为创建任务 + - 点击某个项目进入项目概览页;项目旁的「+」为**启动任务**(基于该项目仓库创建 AI 任务) +- **配置**:点击底部「配置」打开设置弹窗,可管理 Git 身份、AI 大模型、系统镜像、宿主机、开发环境、通知等 底部可查看账户余额和点数,点击头像可退出登录。 @@ -56,7 +59,7 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 3. **选择代码来源** 点击「代码」按钮: - - **我的仓库**:展开后选择 GitHub 或 Gitee。若已绑定,会显示你的仓库列表(支持搜索、按账号分组);若未绑定,会提示「去绑定」并跳转到配置页 + - **我的仓库**:展开后按已绑定的 Git 身份(GitHub、Gitee、GitLab、Gitea 等)分组,选择身份后显示该身份下授权的仓库列表(支持搜索);若未绑定,会提示「去绑定」并跳转到配置页 - **其他仓库**:输入完整的 Git 仓库地址,按回车确认;下方会显示历史使用过的仓库供快速选择 - **ZIP 文件**:选择本地的 .zip 压缩包上传(最大 10MB),上传成功后该文件会作为代码来源 @@ -67,18 +70,17 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 点击麦克风按钮,用语音描述任务,系统会自动转为文字。 6. **点击「执行」** - 会弹出参数配置窗口,确认后即可开始执行。 + 会弹出「任务参数」配置窗口,确认后即可开始执行。任务创建成功后会跳转到任务详情页。 ### 任务参数配置 执行前可以调整: -- **开发工具**:Claude Code、OpenAI Codex 或 OpenCode -- **大模型**:选择要使用的 AI 模型(含免费和付费选项) +- **大模型**:选择要使用的 AI 模型(含免费模型和付费选项) - **仓库分支**:不填则使用主分支 -- **身份凭证**:使用私有仓库时,需选择已绑定的 Git 身份 +- **身份凭证**:使用「其他仓库」时,需选择已绑定的 Git 身份(从「我的仓库」选择的仓库已自动关联身份,不展示此选项) -子账号还可以选择宿主机和系统镜像。 +子账号还可以选择宿主机和系统镜像。开发工具固定为 OpenCode。 ### 查看任务列表 @@ -87,48 +89,61 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 - 任务摘要 - 关联的仓库或文件 - 状态:等待执行、正在执行、任务完成、执行失败 -- 任务类型和创建时间 +- Token 用量(若有) +- 创建时间 -点击任务卡片,会在新窗口打开任务开发页面。 +点击任务卡片进入任务详情页。列表支持无限滚动,向下滚动可加载更多任务。 --- ## 五、任务开发页面 -任务执行时,会打开任务开发页面,你可以在这里与 AI 协作。 +任务执行时,会进入任务详情页(`/console/task/:taskId`),你可以在这里与 AI 协作。 ### 页面布局 -- **左侧**:项目文件树,可展开/折叠目录 -- **中间**:与 AI 的对话区域,以及文件预览 -- **右侧**:终端输出,展示 AI 执行的命令 +- **主区域**:与 AI 的对话区域,包含执行步骤、消息列表、输入框 +- **底部按钮**:文件、终端、修改、预览、续期。点击任一按钮可展开右侧面板,再次点击可收起 + - **文件**:项目文件树,可浏览、打开、编辑文件 + - **终端**:终端输出,展示 AI 执行的命令,也可手动输入 + - **修改**:查看 AI 修改过的文件及 Diff + - **预览**:端口转发与在线预览 + - **续期**:延长开发环境使用时间 + +开发环境准备中时,主区域会显示准备状态(如「正在创建虚拟机」等)。 ### 与 AI 对话 - 当 AI 执行完毕、等待你的反馈时,底部输入框会变为可输入状态 - 输入补充说明或新指令,点击发送,AI 会继续执行 -- 可以随时点击「重启会话」重新开始 +- 支持 **Shift+Enter** 换行,**Enter** 发送 +- 输入框旁有菜单按钮,可进行: + - **重置上下文**:清空当前对话上下文,后续操作基于新上下文 + - **重新加载开发工具**:重新加载 OpenCode 等开发工具 +- 支持**语音输入**:点击麦克风按钮,用语音描述需求,系统会自动转为文字 +- 支持**斜杠命令**:点击终端图标可查看可用命令(如 `/command`),选择后插入到输入框 ### 查看 AI 的执行进度 -- 对话区域会展示 AI 的 TODO 计划,以及每个步骤的完成状态 -- 执行中会显示耗时,你可以点击停止按钮中断执行 +- 对话区域顶部会展示「执行步骤」区块,显示 AI 的 TODO 计划及每个步骤的完成状态 +- 执行中会显示耗时,可点击停止按钮中断执行 +- 任务完成后会显示 Token 用量(输入/输出 tokens) ### 提交代码变更 -当 AI 修改了代码后,你可以: +当 AI 修改了代码后: -1. 点击「提交变更」打开变更列表 -2. 勾选要提交的文件(可全选或部分选择) -3. 点击某个文件可查看具体改动(Diff 视图) -4. 选择「提交选中」或「全部提交」完成提交 +1. 对话区域会显示「X 个文件被修改,是否提交保存」 +2. 点击「提交」会向 AI 发送指令,让其用 git 提交并推送;也可点击「不急」暂时忽略 +3. 若需选择性提交,可点击该提示区域打开变更列表,勾选要提交的文件后提交选中或全部提交 +4. 在「修改」面板中可查看每个文件的 Diff ### 查看和编辑文件 -- 在左侧文件树点击文件,中间会显示文件内容(超过 1MB 的文件会提示无法预览) +- 点击底部「文件」按钮展开文件树,点击文件可查看内容(超过 1MB 会提示无法预览) - 支持多种展示方式:代码高亮、Markdown 渲染、图片预览、JSON 格式化等 -- 文件详情区域有 Tab 可切换:**预览/文本**(查看内容)、**Diff**(查看与上一版本的差异)、**提交历史** -- 代码类文件可直接在编辑器中修改,修改后点击保存即可 +- 代码类文件可直接在编辑器中修改,修改后保存即可 +- 文件操作支持:新建文件/文件夹、上传、复制、移动、删除等 ### 其他功能 @@ -136,35 +151,31 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 当任务中运行了 Web 服务(如前端开发服务器)时: -1. 点击顶部栏的「在线预览」按钮 -2. 在弹窗中查看该环境已开放的端口列表 +1. 点击底部「预览」按钮展开预览面板 +2. 查看已开放的端口列表 3. 若端口尚未开放,需先「开放端口」:系统会获取你的 IP 并加入白名单,开放后可通过生成的访问地址在浏览器中预览 4. 若端口已开放,直接复制访问地址在浏览器中打开即可 **续期** -开发环境有回收时间,即将到期时顶部会显示倒计时: +开发环境有回收时间,即将到期时「续期」按钮会闪烁提醒: -1. 点击倒计时区域 +1. 点击「续期」按钮 2. 在弹窗中选择要续期的时长 3. 确认后开发环境的使用时间会延长 -**布局** - -点击顶部的布局图标,在菜单中可勾选或取消「项目文件」「终端」面板的显示,便于按需调整工作区布局。 - --- -## 六、代码审查 +## 六、代码审查(Git 机器人) -在「代码审查」页面,可以配置 Git 机器人,让 AI 自动审查你的合并请求(PR/MR)。 +在「代码审查」页面(`/console/gitbot`),可以配置 Git 机器人,让 AI 自动审查你的合并请求(PR/MR)。 ### 审查任务 切换到「审查任务」标签: -- 以卡片形式展示所有由机器人触发的审查任务 -- 每个卡片显示关联的 PR/MR、状态、平台等,点击可跳转到对应 Git 平台的 PR 页面 +- 以列表形式展示所有由机器人触发的审查任务 +- 每个任务显示关联的 PR/MR、状态、平台等,点击可跳转到对应 Git 平台的 PR 页面 - 点击「刷新」可更新列表 - 若无任务,会显示「如何使用?」链接,可查看配置说明 @@ -199,35 +210,41 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 ### 如何创建项目 1. 在左侧「开发项目」区域点击「+」按钮 -2. 输入项目名称 -3. 选择仓库来源: - - **GitHub**:需已绑定 GitHub,会加载你授权的仓库列表(支持搜索、按账号分组),从中选择要关联的仓库 - - **Gitee**:需已绑定 Gitee,会加载你授权的仓库列表,从中选择 - - **其他**:直接输入仓库 URL,并选择匹配的身份凭证 -4. 若选 GitHub/Gitee 但未绑定,会提示「去绑定」并跳转到配置页 -5. 提交后,项目会出现在侧边栏,并自动进入该项目页面 +2. 在弹窗中输入项目名称 +3. 选择代码仓库: + - 若已绑定 Git 身份(GitHub、Gitee、GitLab、Gitea 等),会显示已绑定的身份列表,选择其中一个身份 + - 选择身份后,系统会加载该身份下授权的仓库列表,从中选择要关联的仓库 + - 若尚未绑定 Git 账号,会提示「去绑定」并跳转到配置页 +4. 提交后,项目会出现在侧边栏,并自动进入该项目页面 ### 项目页面 -进入项目后,可以看到: +进入项目后,顶部有三个 Tab:**信息**、**需求**、**任务**。 + +**信息** Tab: - **项目信息**:名称、描述、仓库状态(未绑定仓库时会显示提示) -- **文件树**:树形展示仓库结构,点击目录可展开/折叠,点击文件可在下方预览内容 -- **文档预览**:点击文件后,下方会显示文件内容。若未指定文件,会优先尝试加载 `.monkeycode/docs/INDEX.md` 或 `README.md` +- **文件树**:树形展示仓库结构,点击目录可展开/折叠,点击文件可预览内容 +- **README**:自动加载仓库根目录的 `README.md` 并渲染 + +**需求** Tab:创建和管理需求,详见「项目需求」。 + +**任务** Tab:查看该项目下的所有任务,点击任务可进入任务详情页。 ### 启动 AI 操作 -点击「启动 AI」按钮: +在项目信息区域点击「启动 AI」按钮: -- **发起对话**:与 AI 对话,基于当前项目上下文进行操作 -- **生成项目文档**:让 AI 自动生成项目架构和设计文档 +- 弹出「启动 AI 任务」对话框,选择分支后点击「开始对话」 +- 系统会基于当前项目仓库创建开发任务,并跳转到任务详情页与 AI 对话 ### 项目设置 -点击「更多」菜单: +点击项目信息区域的「更多」菜单: - **修改名称**:在弹窗中修改项目名称和描述,保存即可 -- **项目成员**:在弹窗中从团队成员列表中勾选或取消勾选协作成员,保存后这些成员将拥有该项目的读写权限 +- **环境变量**:配置项目运行时的环境变量 +- **开发镜像**:选择项目使用的系统镜像 - **移除项目**:删除项目(不可恢复,请谨慎操作) ### 项目需求 @@ -245,10 +262,11 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 - 状态:进行中、已完成、已关闭 - 优先级:高、中、低 -**从需求启动任务**:在需求详情的「更多操作」中: +**从需求启动任务**:在需求详情的「更多」菜单中: - **启动设计任务**:让 AI 基于需求输出技术方案 - **启动开发任务**:让 AI 基于需求直接开发 +- **移除**:删除该需求 ### 项目任务 @@ -310,6 +328,10 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 **管理**:可修改备注、设为默认、移除。 +### 通知 + +配置任务执行完成后的通知接收方式,支持钉钉、飞书、企业微信、Webhook 等渠道。可添加多个通知通道,并选择要接收的事件类型(如任务完成、任务失败等)。 + ### 开发环境(虚拟机) 展示你名下所有开发环境,包括任务自动创建的以及手动创建的。 @@ -391,9 +413,15 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 --- -## 十一、开发者广场 +## 十一、IDE 辅助工具 + +IDE 辅助工具(`/console/ide`)目前为「敬请期待」状态,后续将提供与 IDE 集成的辅助能力。可通过控制台内直接访问该路径进入。 + +--- + +## 十二、开发者广场 -在开发者广场可以浏览和分享内容。未登录时可浏览,发布需先登录。 +开发者广场(`/playground`)可浏览和分享内容,可从首页进入或直接访问。未登录时可浏览,发布需先登录。 ### 浏览 @@ -420,13 +448,13 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 --- -## 十二、公开任务 +## 十三、公开任务 -展示他人公开分享的任务列表。每个任务以卡片形式展示,点击可进入任务详情页,查看任务描述、执行过程或关联的代码文件等。 +公开任务(`/tasks/public`)展示他人公开分享的任务列表。每个任务以卡片形式展示,点击可进入任务详情页,查看任务描述、执行过程或关联的代码文件等。 --- -## 十三、远程协助 +## 十四、远程协助 当你在终端页面使用「远程协助」功能时,会生成一个连接地址和密码。将地址和密码发送给对方后: @@ -437,9 +465,9 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 --- -## 十四、企业管理后台 +## 十五、企业管理后台 -使用团队管理员账号登录后,可进入企业管理后台。左侧导航包含:仪表盘、成员管理、开发环境、镜像管理、AI 大模型、操作记录、管理员。下面分别说明每个页面的功能和操作方式。 +使用团队管理员账号登录后,可进入企业管理后台(`/manager`)。左侧导航包含:仪表盘、成员管理、开发环境(宿主机)、AI 大模型、系统镜像、管理员、操作记录、其他配置。下面分别说明每个页面的功能和操作方式。 ### 仪表盘 @@ -630,16 +658,16 @@ MonkeyCode 是面向研发团队的企业级 AI 开发平台,覆盖 **需求 --- -## 十五、常见问题 +## 十六、常见问题 **Q:如何创建项目?** -A:在左侧「开发项目」区域点击「+」按钮,输入项目名称,选择仓库来源(GitHub、Gitee 或输入其他仓库地址),从列表中选择要关联的仓库后提交即可。若选 GitHub/Gitee 需先完成绑定,详见「七、开发项目」→「如何创建项目」。 +A:在左侧「开发项目」区域点击「+」按钮,输入项目名称,选择已绑定的 Git 身份,从该身份下授权的仓库列表中选择要关联的仓库后提交即可。若尚未绑定 Git 账号,需先在配置中完成绑定,详见「七、开发项目」→「如何创建项目」。 **Q:如何绑定 GitHub?** A:进入「配置」→「Git 平台身份凭证」→ 点击「绑定 GitHub」,按页面提示完成 GitHub App 安装即可。 **Q:任务执行失败怎么办?** -A:可在任务开发页面点击重试,或回到智能任务页重新创建任务。系统会重新创建开发环境。 +A:可在任务详情页刷新页面重试,或回到新任务页(`/console/tasks`)重新创建任务。系统会重新创建开发环境。 **Q:如何接入自己的电脑作为开发环境?** A:进入「配置」→「宿主机」→ 点击「获取安装命令」,将命令复制到本地终端执行。执行成功后,你的电脑会出现在宿主机列表中。 From 3c464a2bfcbde16c91bf4ced77236d9dc4672b89 Mon Sep 17 00:00:00 2001 From: monster Date: Mon, 16 Mar 2026 18:43:13 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=20welcome=20=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=9A=E6=9B=B4=E6=96=B0=E4=BA=A7=E5=93=81=E4=BB=8B?= =?UTF-8?q?=E7=BB=8D=E3=80=81=E6=96=B0=E5=A2=9E=E7=89=B9=E8=89=B2=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E3=80=81=E7=A7=BB=E9=99=A4=E7=BB=9F=E8=AE=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E3=80=81=E8=B0=83=E6=95=B4=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- frontend/src/components/welcome/banner.tsx | 10 ++-- .../src/components/welcome/highlights.tsx | 56 +++++++++++++++++++ frontend/src/components/welcome/numbers.tsx | 22 ++++---- frontend/src/components/welcome/pricing.tsx | 7 ++- frontend/src/components/welcome/task.tsx | 50 ++++++++--------- frontend/src/pages/welcome.tsx | 4 +- 6 files changed, 100 insertions(+), 49 deletions(-) create mode 100644 frontend/src/components/welcome/highlights.tsx diff --git a/frontend/src/components/welcome/banner.tsx b/frontend/src/components/welcome/banner.tsx index 39f2c49b..135310b9 100644 --- a/frontend/src/components/welcome/banner.tsx +++ b/frontend/src/components/welcome/banner.tsx @@ -2,13 +2,13 @@ import { Button } from "@/components/ui/button"; const Banner = () => { return ( -
-
+
+

- MonkeyCode 智能开发平台 + MonkeyCode — 免费的 AI 编程平台

-

- MonkeyCode 不是 AI 编程工具,是对传统研发模式的变革,是全新的 AI 编程体验,让你的研发团队效率 Max。 +

+ 说需求,AI 写代码、做设计、做 Review。云开发环境开箱即用,多模型不限量。

diff --git a/frontend/src/components/welcome/highlights.tsx b/frontend/src/components/welcome/highlights.tsx new file mode 100644 index 00000000..0decbffb --- /dev/null +++ b/frontend/src/components/welcome/highlights.tsx @@ -0,0 +1,56 @@ +import { + IconGift, + IconCloud, + IconCpu, + IconBrandOpenai, +} from "@tabler/icons-react"; + +const Highlights = () => { + const items = [ + { + icon: IconGift, + title: "完全免费", + description: "零成本使用,无需订阅费用,节省开发环境和大模型费用。", + }, + { + icon: IconCloud, + title: "云开发环境", + description: "内置云开发环境,开箱即用,无需本地配置。", + }, + { + icon: IconCpu, + title: "2 核 8GB 云服务器", + description: "每个开发任务对应一台独立云服务器,环境隔离、安全可控。", + }, + { + icon: IconBrandOpenai, + title: "多模型不限量", + description: "内置 GLM、MiniMax、Kimi、Deepseek 等大模型,不限额度,无限畅用。", + }, + ]; + + return ( +
+
+
+ {items.map((item, index) => ( +
+
+ +
+

{item.title}

+

+ {item.description} +

+
+ ))} +
+
+
+ ); +}; + +export default Highlights; diff --git a/frontend/src/components/welcome/numbers.tsx b/frontend/src/components/welcome/numbers.tsx index 242d5cea..59f1b99c 100644 --- a/frontend/src/components/welcome/numbers.tsx +++ b/frontend/src/components/welcome/numbers.tsx @@ -25,19 +25,19 @@ const Numbers = () => { }; return ( -
-
-
-
注册用户
-
{ntos(stats.users_count || 0)}
+
+
+
+
注册用户
+
{ntos(stats.users_count || 0)}
-
-
完成开发任务
-
{ntos(stats.tasks_count || 0)}
+
+
完成开发任务
+
{ntos(stats.tasks_count || 0)}
-
-
GitHub Star
-
window.open("https://github.com/chaitin/monkeycode", "_blank")}>{ntos(stats.repo_stars || 0)}
+
+
GitHub Star
+
window.open("https://github.com/chaitin/monkeycode", "_blank")}>{ntos(stats.repo_stars || 0)}
diff --git a/frontend/src/components/welcome/pricing.tsx b/frontend/src/components/welcome/pricing.tsx index e97eaed7..35405301 100644 --- a/frontend/src/components/welcome/pricing.tsx +++ b/frontend/src/components/welcome/pricing.tsx @@ -17,9 +17,10 @@ const Pricing = () => { price: "免费", priceUnit: "", features: [ - "智能任务模式", - "在线 Git 机器人", - "IDE 辅助插件" + "完全免费,零成本使用", + "云开发环境(2 核 8GB)", + "多模型不限额度", + "智能任务 + Git 机器人", ], buttonText: "立即开始", buttonLink: "/console", diff --git a/frontend/src/components/welcome/task.tsx b/frontend/src/components/welcome/task.tsx index 64e2774b..79cdc6d1 100644 --- a/frontend/src/components/welcome/task.tsx +++ b/frontend/src/components/welcome/task.tsx @@ -16,38 +16,33 @@ const Task = () => { ]; const features = [ - { title: "工具无关性", description: "Code Agent 支持 OpenAI Codex、Claude Code、OpenCode 等,如果你已经熟悉了某种 Agent,可以无缝切换到 MonkeyCode 上。" }, - { title: "模型无关性", description: "兼容 GPT、Claude、Deepseek、GLM、Kimi、Qwen、Doubao 等大模型,或其他本地模型。" }, + { title: "云开发环境", description: "每个任务对应一台 2 核 8GB 云服务器,内置在线 IDE、终端、文件管理,开箱即用,无需本地配置。" }, + { title: "多模型不限量", description: "内置 GLM、MiniMax、Kimi、Deepseek 等大模型,不限额度,可无限畅用。也可接入自己的 API 模型。" }, { title: "多种任务模式", description: "开发模式根据需求执行编码任务,设计模式进行架构设计并输出技术方案,审查模式识别代码风险并提出改进建议。" }, - { title: "开发环境隔离", description: "允许用户将自己的开发机接入 MonkeyCode,任务启动时会创建一个全新的操作系统供当前任务使用。" }, + { title: "全流程覆盖", description: "覆盖需求 → 设计 → 开发 → 代码审查全流程,用自然语言描述需求,AI 帮你写代码、做设计、做 Review。" }, ]; return ( -
-
-
-

- 智能任务模式 -

-
- -
-
- {features.map((feature, index) => ( -
- -
-
- {feature.title} -
-
- {feature.description} -
-
+
+
+

+ 智能任务模式 +

+
+ +
+
+ {features.map((feature, index) => ( +
+ +
+
{feature.title}
+
{feature.description}
- ))} -
-
+
+ ))} +
+
{images.map((image, index) => (
{
))} -
!open && setSelectedImage(null)}> diff --git a/frontend/src/pages/welcome.tsx b/frontend/src/pages/welcome.tsx index 9f0ab558..64ddb638 100644 --- a/frontend/src/pages/welcome.tsx +++ b/frontend/src/pages/welcome.tsx @@ -2,9 +2,9 @@ import { useEffect } from "react"; import { useSearchParams } from "react-router-dom"; import Header from "@/components/welcome/header" import Banner from "@/components/welcome/banner" +import Highlights from "@/components/welcome/highlights" import Task from "@/components/welcome/task"; import Footer from "@/components/welcome/footer"; -import Numbers from "@/components/welcome/numbers"; import Pricing from "@/components/welcome/pricing"; import GitBot from "@/components/welcome/git-bot"; import SDD from "@/components/welcome/sdd"; @@ -26,7 +26,7 @@ const WelcomePage = () => {
- + From efcf5cb664a71b579039b29edfd05b01dae49605 Mon Sep 17 00:00:00 2001 From: monster Date: Mon, 16 Mar 2026 19:32:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=8F=B0=E6=96=87=E6=A1=88=EF=BC=9A=E4=BD=99=E9=A2=9D=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E9=92=B1=E5=8C=85=EF=BC=8C=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=94=B9=E4=B8=BA=E5=B8=AE=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- frontend/src/components/console/nav/nav-balance.tsx | 2 +- frontend/src/pages/console/manager/page.tsx | 2 +- frontend/src/pages/console/user/page.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/console/nav/nav-balance.tsx b/frontend/src/components/console/nav/nav-balance.tsx index f9b50afd..f9582a60 100644 --- a/frontend/src/components/console/nav/nav-balance.tsx +++ b/frontend/src/components/console/nav/nav-balance.tsx @@ -117,7 +117,7 @@ export default function NavBalance({ variant = "sidebar" }: NavBalanceProps) { const triggerContent = ( <> - 余额: {Math.ceil(balance + bonus).toLocaleString()} 点 + 钱包 ); diff --git a/frontend/src/pages/console/manager/page.tsx b/frontend/src/pages/console/manager/page.tsx index b9b3157c..9f7f40cd 100644 --- a/frontend/src/pages/console/manager/page.tsx +++ b/frontend/src/pages/console/manager/page.tsx @@ -100,7 +100,7 @@ export default function ManagerConsolePage() { {/**/} diff --git a/frontend/src/pages/console/user/page.tsx b/frontend/src/pages/console/user/page.tsx index 3eaa0567..2de7eb4a 100644 --- a/frontend/src/pages/console/user/page.tsx +++ b/frontend/src/pages/console/user/page.tsx @@ -154,7 +154,7 @@ function UserConsoleContent() { {/**/} From 0f6d907cd415df0dabc73546fb483feec31047c0 Mon Sep 17 00:00:00 2001 From: monster Date: Mon, 16 Mar 2026 20:03:11 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20=E5=90=AF=E5=8A=A8=20AI=20=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=AF=B9=E8=AF=9D=E6=A1=86=E5=A2=9E=E5=8A=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=86=85=E5=AE=B9=E5=A4=9A=E8=A1=8C=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- .../console/project/start-develop-task-dialog.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/console/project/start-develop-task-dialog.tsx b/frontend/src/components/console/project/start-develop-task-dialog.tsx index e6543d71..e49f81d2 100644 --- a/frontend/src/components/console/project/start-develop-task-dialog.tsx +++ b/frontend/src/components/console/project/start-develop-task-dialog.tsx @@ -4,6 +4,7 @@ import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" +import { Textarea } from "@/components/ui/textarea" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Spinner } from "@/components/ui/spinner" import { selectHost, selectImage, selectModel } from "@/utils/common" @@ -29,6 +30,7 @@ export default function StartDevelopTaskDialog({ const [branches, setBranches] = useState([]) const [selectedBranch, setSelectedBranch] = useState('') const [loadingBranches, setLoadingBranches] = useState(false) + const [userMessage, setUserMessage] = useState('') const { images, models, hosts } = useCommonData() const fetchBranches = async () => { @@ -86,6 +88,7 @@ export default function StartDevelopTaskDialog({ useEffect(() => { if (open) { fetchBranches() + setUserMessage('') } }, [open, project]) @@ -99,7 +102,7 @@ export default function StartDevelopTaskDialog({ // 创建任务 await apiRequest('v1UsersTasksCreate', { - content: `你好,MonkeyCode`, + content: userMessage.trim(), cli_name: ConstsCliName.CliNameOpencode, model_id: selectModel(models, false), image_id: selectImage(images, false), @@ -177,6 +180,16 @@ export default function StartDevelopTaskDialog({
)} +
+ +