fix(web): rename AI channel to AI 对话
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
森林AI 面向个人知识工作者、团队负责人和可信的内部协作成员,帮助用户把分散的事项、资料与沟通内容整理到清晰的项目空间中。
|
森林AI 面向个人知识工作者、团队负责人和可信的内部协作成员,帮助用户把分散的事项、资料与沟通内容整理到清晰的项目空间中。
|
||||||
|
|
||||||
每个项目都有独立的概况、Inbox、工作计划、AI 助手、笔记资料和计划任务。用户既可以在工作台查看所有项目的整体进展,也可以进入具体项目,围绕目标持续收集信息、安排工作、沉淀知识并复盘成果。
|
每个项目都有独立的概况、工作计划、AI 对话、笔记资料和计划任务。用户既可以在工作台查看所有项目的整体进展,也可以进入具体项目,围绕目标持续收集信息、安排工作、沉淀知识并复盘成果。
|
||||||
|
|
||||||
## 适用场景
|
## 适用场景
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ Inbox 用于承接尚未归类的想法、消息和材料。用户可以查看
|
|||||||
|
|
||||||
任务按项目组织,可记录标题、说明、标签、负责人、创建时间和完成状态。项目内标签帮助用户按主题或优先级整理计划,同时保留进行中与已完成事项,方便跟进和复盘。
|
任务按项目组织,可记录标题、说明、标签、负责人、创建时间和完成状态。项目内标签帮助用户按主题或优先级整理计划,同时保留进行中与已完成事项,方便跟进和复盘。
|
||||||
|
|
||||||
### AI 助手
|
### AI 对话
|
||||||
|
|
||||||
用户可以在项目内创建带有项目背景的 AI 会话入口,提前明确本次协作的目标和参考上下文。AI 输出与正式项目内容相互区分,需要用户确认后才能转化为任务、笔记或资料。
|
用户可以在项目内创建带有项目背景的 AI 会话入口,提前明确本次协作的目标和参考上下文。AI 输出与正式项目内容相互区分,需要用户确认后才能转化为任务、笔记或资料。
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ if (!aiApiSource.includes('signal,')) failures.push('AI API requests must pass t
|
|||||||
if (/\b(?:task|note|source)Id\b/.test(aiApiSource)) failures.push('AI session responses must not expose automatic formal object IDs')
|
if (/\b(?:task|note|source)Id\b/.test(aiApiSource)) failures.push('AI session responses must not expose automatic formal object IDs')
|
||||||
|
|
||||||
const aiPageSource = readFileSync('src/pages/projects/project-ai.tsx', 'utf8')
|
const aiPageSource = readFileSync('src/pages/projects/project-ai.tsx', 'utf8')
|
||||||
for (const required of ['AI 助手', '创建会话', 'loading', 'error']) {
|
for (const required of ['AI 对话', '创建会话', 'loading', 'error']) {
|
||||||
if (!aiPageSource.includes(required)) failures.push(`project AI page must include ${required}`)
|
if (!aiPageSource.includes(required)) failures.push(`project AI page must include ${required}`)
|
||||||
}
|
}
|
||||||
for (const required of ['AbortController', 'generationRef', 'projectRef', 'setSessions([])']) {
|
for (const required of ['AbortController', 'generationRef', 'projectRef', 'setSessions([])']) {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ const visualCheckWorkspace = {
|
|||||||
{ id: 'overview', projectId, type: 'overview', title: '概况', icon: 'home', count: 0, url: '', sortOrder: 0 },
|
{ id: 'overview', projectId, type: 'overview', title: '概况', icon: 'home', count: 0, url: '', sortOrder: 0 },
|
||||||
{ id: 'inbox', projectId, type: 'inbox', title: 'Inbox 消息流', icon: 'email', count: 2, url: '', sortOrder: 1 },
|
{ id: 'inbox', projectId, type: 'inbox', title: 'Inbox 消息流', icon: 'email', count: 2, url: '', sortOrder: 1 },
|
||||||
{ id: 'tasks', projectId, type: 'tasks', title: '工作计划', icon: 'list', count: 0, url: '', sortOrder: 1 },
|
{ id: 'tasks', projectId, type: 'tasks', title: '工作计划', icon: 'list', count: 0, url: '', sortOrder: 1 },
|
||||||
{ id: 'ai', projectId, type: 'ai_sessions', title: 'AI 助手', icon: 'robot', count: 0, url: '', sortOrder: 2 },
|
{ id: 'ai', projectId, type: 'ai_sessions', title: 'AI 对话', icon: 'robot', count: 0, url: '', sortOrder: 2 },
|
||||||
{ id: 'notes', projectId, type: 'notes_sources', title: '笔记资料', icon: 'file', count: 0, url: '', sortOrder: 3 },
|
{ id: 'notes', projectId, type: 'notes_sources', title: '笔记资料', icon: 'file', count: 0, url: '', sortOrder: 3 },
|
||||||
{ id: 'cron', projectId, type: 'cron', title: '计划任务', icon: 'clock', count: 0, url: '', sortOrder: 4 },
|
{ id: 'cron', projectId, type: 'cron', title: '计划任务', icon: 'clock', count: 0, url: '', sortOrder: 4 },
|
||||||
],
|
],
|
||||||
@@ -213,7 +213,7 @@ const channelListHoverMetrics = await collectMetrics()
|
|||||||
const channelPageChecks = []
|
const channelPageChecks = []
|
||||||
for (const channel of [
|
for (const channel of [
|
||||||
{ label: '工作计划', pageClass: 'project-tasks-page', expectedHeading: '工作计划' },
|
{ label: '工作计划', pageClass: 'project-tasks-page', expectedHeading: '工作计划' },
|
||||||
{ label: 'AI 助手', pageClass: 'project-ai-page', expectedHeading: 'AI 助手' },
|
{ label: 'AI 对话', pageClass: 'project-ai-page', expectedHeading: 'AI 对话' },
|
||||||
{ label: '笔记资料', pageClass: 'project-notes-page', expectedHeading: '笔记资料' },
|
{ label: '笔记资料', pageClass: 'project-notes-page', expectedHeading: '笔记资料' },
|
||||||
{ label: '计划任务', pageClass: 'project-cron-page', expectedHeading: '计划任务' },
|
{ label: '计划任务', pageClass: 'project-cron-page', expectedHeading: '计划任务' },
|
||||||
{ label: '新建频道', pageClass: 'project-new-channel-page', expectedHeading: '新建频道' },
|
{ label: '新建频道', pageClass: 'project-new-channel-page', expectedHeading: '新建频道' },
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ function channelLabel(channel: WorkspaceChannelDTO) {
|
|||||||
case 'tasks':
|
case 'tasks':
|
||||||
return '工作计划'
|
return '工作计划'
|
||||||
case 'ai_sessions':
|
case 'ai_sessions':
|
||||||
return 'AI 助手'
|
return 'AI 对话'
|
||||||
case 'notes_sources':
|
case 'notes_sources':
|
||||||
return '笔记资料'
|
return '笔记资料'
|
||||||
case 'cron':
|
case 'cron':
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ export function ProjectAi({
|
|||||||
<div className="project-channel-page project-ai-page overview-page">
|
<div className="project-channel-page project-ai-page overview-page">
|
||||||
<div className="overview-head">
|
<div className="overview-head">
|
||||||
<div>
|
<div>
|
||||||
<Title heading={4}>AI 助手</Title>
|
<Title heading={4}>AI 对话</Title>
|
||||||
<Text type="secondary">创建项目内普通会话;不会自动生成任务、笔记或资料。</Text>
|
<Text type="secondary">创建项目内普通会话;不会自动生成任务、笔记或资料。</Text>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export function WorkspacePage({
|
|||||||
const workspaceMetrics = [
|
const workspaceMetrics = [
|
||||||
{ title: '项目总数', value: projects.length, delta: `${urgentProjects} 个高优先级`, icon: <IconDashboard />, color: 'arcoblue' },
|
{ title: '项目总数', value: projects.length, delta: `${urgentProjects} 个高优先级`, icon: <IconDashboard />, color: 'arcoblue' },
|
||||||
{ title: '未完成计划', value: unfinishedTasks.length, delta: '跨项目聚合', icon: <IconCheckCircleFill />, color: 'green' },
|
{ title: '未完成计划', value: unfinishedTasks.length, delta: '跨项目聚合', icon: <IconCheckCircleFill />, color: 'green' },
|
||||||
{ title: 'AI智能体', value: aiSessions.length, delta: '项目内上下文', icon: <IconRobot />, color: 'purple' },
|
{ title: 'AI 对话', value: aiSessions.length, delta: '项目内上下文', icon: <IconRobot />, color: 'purple' },
|
||||||
{ title: '知识资料', value: notes.length, delta: '笔记与资料合计', icon: <IconFile />, color: 'cyan' },
|
{ title: '知识资料', value: notes.length, delta: '笔记与资料合计', icon: <IconFile />, color: 'cyan' },
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ export function WorkspacePage({
|
|||||||
<div className="overview-head">
|
<div className="overview-head">
|
||||||
<div>
|
<div>
|
||||||
<Title heading={4}>工作台</Title>
|
<Title heading={4}>工作台</Title>
|
||||||
<Text type="secondary">所有项目的统一工作台,汇总项目任务、AI智能体和知识资产。</Text>
|
<Text type="secondary">所有项目的统一工作台,汇总项目任务、AI 对话和知识资产。</Text>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user