本文档是 NoteWeave 当前唯一的阶段执行计划。它根据 architecture_review_issues_and_recommendations.md 和 review2.md 对原计划做了收敛:统一 Phase 0/1 到 Phase 16 的阶段线,前置 Task/Outbox/权限/认证等地基能力,移出当前暂缓功能,并把前端从最后一次性阶段调整为随阶段验证的薄片交付。
具体功能细节仍以 docs/features 下对应专题文档为准;如果专题文档与本文档冲突,先按本文档修正专题文档,再进入编码。
- 先统一契约,再写代码:数据库表、API 路径、状态枚举、错误码、分页格式和权限边界必须先收敛。
- 所有编程阶段采用测试驱动开发:先写失败测试,再写最小实现,最后运行当前阶段测试和必要回归测试。
- 所有中间件通过 Docker Compose 或 Testcontainers 提供;Phase 引入新中间件时必须同步本地 Docker、测试容器、测试 bucket/topic/index/path 契约。
- 先稳定异步任务,再接 AI 能力:上传、解析、索引、Source 编译、Artifact 生成、Wiki 入索引、评测都必须走统一 Task/Worker 模型。
- 当前后台异步任务消息队列统一使用 Kafka;
task_outbox只做 DB 事务外盒和补偿投递。 - Redis Stream 不是项目级消息队列,只能作为 Phase 5 Chat runtime 的可选临时事件缓冲,用于 WebSocket 流式状态、ack/resume 和断线恢复;如果普通 Redis key/list/zset 足够,也可以不引入 Redis Stream。
- 上传、解析、索引、生成、评测、清理等后台任务不得使用 Redis Stream,必须继续走
task/task_outbox -> Kafka -> Worker -> task_attempt/task_event。 - 先跑通团队 RAG 最小闭环,再扩展个人研究、Studio、Wiki 和 Memory。
- 团队侧与个人侧分治:团队以
Space -> KnowledgeBase -> Document -> DocumentChunk为主线,个人以Space -> ResearchProject -> Source -> ArticleCard/ConceptCard/MethodologyCard为源资料编译主线,并通过用户确认后的Artifact -> SynthesisCard形成产物沉淀闭环。 - Artifact 与 Wiki 严格分离:阶段性产物保存在 Artifact;只有人工确认的长期稳定内容才能发布为团队 WikiPage 或沉淀为个人 Wiki Card。
- 所有业务 API 统一使用
/api/v1;旧的/api/...示例视为待修正文档,不再作为实现依据。 - 所有列表 API 默认支持分页、筛选和排序;统一响应、统一错误码和统一认证头是 Phase 0/1 的交付物。
- 当前阶段暂缓 Quiz/测验/答题/评分/题库、外部资料自动发现、商业化计费、复杂企业审批流、复杂多人实时协同编辑。
编码前先确认以下文档口径一致:
| 契约 | 权威来源 | 要求 |
|---|---|---|
| 最终实现契约 | docs/CONTRACT.md |
API 前缀、统一响应、Task 类型、Artifact/Wiki 边界、权限和暂缓范围。 |
| Docker 中间件 | docs/DOCKER_MIDDLEWARE.md |
本地 Docker Compose、Testcontainers、测试路径、bucket、topic、index 前缀。 |
| 阶段顺序 | implementation_breakdown.md |
本文档为唯一执行顺序。 |
| 表结构与 API | database_api_blueprint.md |
必须同步所有阶段用到的表、索引、枚举和 /api/v1 API。 |
| 功能细节 | docs/features/phase_*.md |
按本文档的阶段顺序修正后再编码。 |
| 上传链路 | file_upload_async_pipeline.md |
必须补齐 cancel、Outbox、对象引用、过期清理。 |
| 会话运行态 | workspace_chat_runtime_memory.md |
必须与 Phase 5 的 WebSocket 事件名、DRAFT 生命周期一致。 |
| 暂缓功能 | 本文档第 9 节 | 不进入当前阶段验收。 |
User
UserSession / RefreshToken
Space
SpaceMember
SystemRole
ResourceAccessService
约定:
Space是最高业务容器,Space.type = PERSONAL | TEAM。- 每个用户注册后自动拥有一个 PERSONAL Space。
- 团队协作通过
SpaceMember管理,角色为OWNER / EDITOR / VIEWER。 - 系统后台通过
User.systemRole = USER | ADMIN或等价系统角色表管理,不能复用 SpaceMember 角色。 - 通用资源访问必须经过
ResourceAccessService或模块内等价权限服务,不能只按 id 查询。
KnowledgeBase
DocumentUpload
UploadChunk
FileObject
Document
DocumentChunk
WikiPage
WikiPageVersion
约定:
KnowledgeBase只属于 TEAM Space。Document属于KnowledgeBase,并通过FileObject引用对象存储内容。DocumentChunk是团队 RAG 的基础证据单位。- 文档重处理必须版本化,不能先删除旧索引再写新索引。
- Wiki 只保存人工确认后的长期稳定知识。
ResearchProject
Source
SourceChunk / ParsedSourceText
ArticleCard
ConceptCard
ConceptAlias
ConceptRelation
ArticleConceptRelation
MethodologyCard
SynthesisCard
ArtifactCardRelation
约定:
ResearchProject属于 PERSONAL Space。- Source 导入完成必须产出可编译 Raw Text 或 Parsed Text,不能仅保存元数据后标记 READY。
- ArticleCard/ConceptCard 的证据关系必须能回溯到 Source 原文,证据不应只放 JSON。
- MethodologyCard 的预置模板和匹配器需要在个人生成前可用,高级编辑能力可以后置。
Task
TaskAttempt
TaskEvent
TaskOutbox
ChatSession
ChatSessionScope
ChatMessage
Citation / Evidence
Artifact
ArtifactVersion
ArtifactSource
SkillExecutionLog
LLMCallLog
RetrievalTrace
AuditLog
约定:
- 统一
Task承载异步任务,不再使用generation_task、index_task等并行概念。 Citation/Evidence覆盖 Message、Card、Artifact、WikiDraft、Eval,不只服务团队问答。Artifact必须有版本或修订记录,编辑和重新生成不能覆盖历史。- LLM、检索、Skill 日志必须默认脱敏,不直接暴露完整 Prompt、Memory 或私有原文。
这些不是“后续优化”,而是开始阶段编码前需要先写入设计文档的地基。
- 所有业务接口统一
/api/v1。 - 统一响应结构:
success/code/message/data/timestamp/requestId。 - 分页响应统一:
items/page/pageSize/total/sort。 - 所有列表 API 必须明确分页、筛选、排序参数。
- 建立全局错误码注册表,阶段文档只能追加,不能各自发明冲突错误码。
- Auth 必须包含 register、login、refresh、logout、logout-all。
- 增加
UserSession或RefreshToken表,refresh token 存 hash,可撤销,可过期。 - 增加用户资料管理:
GET/PUT /api/v1/users/me、修改密码。 - 增加系统角色:
USER / ADMIN。 - 非 dev 环境必须显式配置 JWT secret、数据库密码、MinIO 密钥和 LLM key,不能使用默认弱值启动。
- Phase 0 直接引入 Flyway 或 Liquibase;
ddl-auto=update只能作为本地临时模式。 - 业务表统一包含适用的审计字段:
created_at/updated_at/created_by/updated_by/deleted_at/deleted_by/status。 - 核心隔离字段不能缺:团队资源必须有
space_id,个人资源必须有user_id或 owner 可追溯字段,项目资源必须有research_project_id。 - 明确外键策略:可以采用数据库 FK 或逻辑 FK,但必须在蓝图中写出关系和索引。
统一状态:
PENDING
RUNNING
SUCCESS
FAILED
CANCELLED
TIMEOUT
统一任务类型:
DOCUMENT_PROCESS
SOURCE_IMPORT
SOURCE_COMPILE
ARTIFACT_GENERATE
WIKI_INDEX
EMBEDDING_BACKFILL
RAG_EVAL_RUN
CLEANUP_RESOURCE
必须具备:
task.idempotency_key唯一约束。task_attempt记录每次执行、错误、耗时、worker、开始/结束时间。task_event记录状态迁移,便于前端和 Admin 查看。task_outbox保证 DB 提交与 Kafka 投递最终一致;它不是业务队列,发送成功后只代表消息已进入 Kafka。- RUNNING 任务支持
cancel_requested,Worker 在安全点停止。 - Kafka message key 使用
taskId或稳定幂等键;Consumer/Worker 处理前只信任taskId并回查 DB 状态。 - 不允许在后续 Phase 用 Redis Stream、RabbitMQ 或内存队列另起一套后台任务执行链路;Redis Stream 如在 Phase 5 使用,也只能保存 Chat runtime 的临时流事件和恢复状态。如需替换 Kafka,必须先更新
CONTRACT.md、DOCKER_MIDDLEWARE.md和相关 phase 文档。
- 分片对象 key 的业务后缀使用
uploads/{uploadId}/chunks/{chunkIndex},实际 MinIO key 必须按docs/DOCKER_MIDDLEWARE.md增加 dev/test 前缀,不要只用fileMd5/chunkIndex。 - 合并后对象进入
FileObject,由content_hash/object_key/ref_count/size/content_type管理复用。 - 秒传只能复用对象内容,不能复用权限;不同 Space 必须有独立 Document 元数据。
- 上传必须支持 cancel、expiresAt、过期清理和失败补偿。
- Citation 需要记录
sourceType/sourceId/chunkId/pageNo/startOffset/endOffset/quoteHash/snapshotObjectKey/sourceVersion等可回溯字段。 - Message、Card、Artifact、WikiDraft 都通过关联表绑定 Evidence,不能只放
citation_idsJSON。 - Citation 返回前必须二次权限校验。
统一事件 envelope:
{
"event": "chat.delta",
"requestId": "uuid",
"streamId": "uuid",
"sessionId": 1,
"messageId": 2,
"seq": 12,
"payload": {},
"error": null
}统一事件名:
chat.connected
chat.started
chat.delta
chat.completed
chat.stopped
chat.failed
chat.restored
session.state.updated
DRAFT 会话必须有生命周期:
DRAFT_ACTIVE
DRAFT_EXPIRED
CONVERTED
DISCARDED
目标:建立可以持续迭代的工程地基。
必须完成:
- Spring Boot 工程骨架。
- MySQL、Redis、本地 Docker Compose。
- Flyway/Liquibase 数据库迁移。
- 统一响应、统一错误码、统一分页。
- 请求
requestId、基础日志、健康检查。 - 配置 Profile:dev/test/prod。
- OpenAPI 或等价 API 契约导出约定。
验收:
- 服务可启动,健康检查可访问。
mvn test可运行。- Flyway/Liquibase 可执行首个迁移。
- 统一错误响应和分页结构有测试。
目标:锁定身份、空间、成员和权限边界。
必须完成:
- 用户注册、登录、刷新 token、退出登录、退出全部设备。
- 当前用户查询与个人资料更新。
UserSession或RefreshToken。- 注册后创建 PERSONAL Space 和 OWNER SpaceMember。
- 创建 TEAM Space。
- Space 成员添加、列表、角色更新、移除。
- 系统角色
USER / ADMIN。 SpacePermissionService和ResourceAccessService初版。
关键 API:
POST /api/v1/auth/register
POST /api/v1/auth/login
POST /api/v1/auth/refresh
POST /api/v1/auth/logout
POST /api/v1/auth/logout-all
GET /api/v1/users/me
PUT /api/v1/users/me
PUT /api/v1/users/me/password
POST /api/v1/spaces
GET /api/v1/spaces
GET /api/v1/spaces/{spaceId}
GET /api/v1/spaces/{spaceId}/members
POST /api/v1/spaces/{spaceId}/members
PUT /api/v1/spaces/{spaceId}/members/{memberId}/role
DELETE /api/v1/spaces/{spaceId}/members/{memberId}验收:
- 非成员不能访问 TEAM Space。
- ADMIN 与 Space OWNER 权限分离。
- Refresh token 可撤销,logout 后不可刷新。
- 所有受保护接口走统一认证和权限入口。
目标:在任何长任务接入前先稳定异步模型。
专题文档:docs/features/phase_1_5_task_outbox_worker.md
必须完成:
task、task_attempt、task_event、task_outbox。- 统一 Task 状态、类型和幂等键生成规则。
- Task 查询、取消、重试基础 API。
- Worker 拉取/投递基础能力。
- 本地 Worker 测试和失败重试测试。
- 最小健康检查:MySQL、Redis、Worker 状态。
关键 API:
GET /api/v1/tasks/{taskId}
POST /api/v1/tasks/{taskId}/cancel
POST /api/v1/tasks/{taskId}/retry
GET /api/v1/tasks/{taskId}/events验收:
- 重复请求不会重复创建同一幂等任务。
- Worker 失败会写 attempt 和 event。
- Cancel 请求能被 RUNNING Worker 在安全点识别。
- Outbox 未投递消息可补偿投递。
目标:让团队文档可靠进入系统,但不做真实解析。
必须完成:
- KnowledgeBase CRUD/归档。
FileObject与对象引用计数。- DocumentUpload 初始化、分片上传、状态查询、merge、cancel。
- Redis Bitmap key 使用
upload:{uploadId}或等价唯一 key。 - MinIO 分片 key 使用
uploads/{uploadId}/chunks/{chunkIndex}后缀,并按 Docker 中间件契约增加 dev/test 前缀。 - merge 后创建 Document、FileObject 引用、Task、Outbox。
- 上传过期清理基础任务。
- Kafka 投递幂等。
关键 API:
POST /api/v1/team/spaces/{spaceId}/knowledge-bases
GET /api/v1/team/spaces/{spaceId}/knowledge-bases
GET /api/v1/team/knowledge-bases/{knowledgeBaseId}
PUT /api/v1/team/knowledge-bases/{knowledgeBaseId}
DELETE /api/v1/team/knowledge-bases/{knowledgeBaseId}
POST /api/v1/team/knowledge-bases/{knowledgeBaseId}/documents/uploads/init
POST /api/v1/team/document-uploads/{uploadId}/chunks
GET /api/v1/team/document-uploads/{uploadId}/status
POST /api/v1/team/document-uploads/{uploadId}/merge
POST /api/v1/team/document-uploads/{uploadId}/cancel
GET /api/v1/team/knowledge-bases/{knowledgeBaseId}/documents
GET /api/v1/team/documents/{documentId}
DELETE /api/v1/team/documents/{documentId}验收:
- OWNER/EDITOR 可以上传,VIEWER 不可上传。
- 上传可断点续传、可取消、可过期清理。
- 秒传复用 FileObject,但权限和 Document 元数据独立。
- DB 提交和任务投递具备补偿路径。
目标:把团队 Document 处理成可检索证据。
必须完成:
- Consumer 只消费 Task 或 taskId,并按 DB 状态幂等执行。
- PDF/Markdown/TXT 支持;DOCX 要么明确支持,要么上传阶段拒绝。
- 解析文本保存为
parsedTextObjectKey或等价字段。 - Chunk 保存页码/section/startOffset/endOffset/contentHash。
indexVersion和 active version 机制。- ES BM25 索引写入,字段命名统一。
- Reindex 创建新版本,成功后切换 active,失败不破坏旧索引。
- 失败写 TaskAttempt、Document 错误状态。
验收:
- 重复消费不会重复创建 active Chunk。
- 旧索引在新索引成功前仍可检索。
- 文档删除或 KB 归档后不会被检索召回。
- Search Debug 接口只返回当前用户有权限的 Chunk。
目标:跑通第一个用户价值闭环。
必须完成:
- TEAM_CHAT ChatSession 与 ChatMessage。
chat_session_scope结构化检索范围。- BM25 Retriever,ES 查询必须带
spaceId/knowledgeBaseId/statusfilter。 - EvidencePostProcessor 初版。
- TeamRagPromptBuilder,包含 prompt injection 防护规则。
- LLMClient 与 StubLLMClient。
- Citation/Evidence 保存与 Message 关联。
- 最小
LLMCallLog、RetrievalTrace、AnswerFeedback。 - HTTP 非流式问答。
关键 API:
POST /api/v1/chat/sessions
GET /api/v1/spaces/{spaceId}/chat-sessions
GET /api/v1/chat/sessions/{sessionId}
GET /api/v1/chat/sessions/{sessionId}/messages
POST /api/v1/chat/sessions/{sessionId}/messages
GET /api/v1/chat/messages/{messageId}/citations
POST /api/v1/chat/messages/{messageId}/feedback验收:
- A Space 不能召回 B Space 文档。
- 回答带 Citation,Citation 可查看证据片段。
- LLM 调用和检索 Trace 可反查。
- 无证据时返回明确兜底回答,不编造。
目标:支持流式输出、中断、恢复、正式会话和临时草稿。
必须完成:
- ws-ticket 获取与一次性消费。
- 统一 WebSocket envelope 和事件名。
- FORMAL / DRAFT 会话。
- DRAFT 生命周期:active、expired、converted、discarded。
- ChatMessage 状态:created、streaming、completed、stopped、failed。
- Redis runtime、short term、stream state。
- eventSeq/ack/resume 基础机制。
- stop 后取消底层 LLM stream,并保留可恢复状态。
关键 API:
POST /api/v1/chat/ws-ticket
POST /api/v1/chat/sessions/{sessionId}/convert-to-formal
POST /api/v1/chat/sessions/{sessionId}/discard-draft
WebSocket /ws/chat/{ticket}验收:
- 刷新后可 resume 到 partialContent 或最近落库消息。
- stop 后不再推送 delta。
- DRAFT 不写长期 Memory。
- 前端和后端事件名完全一致。
目标:建立个人研究入口,并保证 Source 可被后续编译。
必须完成:
- ResearchProject CRUD/归档。
- Source 文件、URL、文本导入。
- FILE 复用 DocumentParser 解析为 raw/parsed text。
- URL 至少实现正文抓取或明确失败状态,不能无文本标记 READY。
- TEXT 直接保存 raw text。
SOURCE_IMPORTTask、失败重试、去重策略。- Source 详情、列表、删除、重新导入。
验收:
- 只有 owner 能访问个人项目和 Source。
importStatus=READY的 Source 必须有可读取文本。- 重复导入同一内容不会重复生成后续卡片。
目标:基于 Source 生成 ArticleCard 和 ConceptCard。
必须完成:
SOURCE_COMPILETask。- ArticleCard 生成与更新。
- Concept 抽取、归一化、合并。
- ConceptAlias、ConceptRelation、ArticleConceptRelation。
- Card Evidence/Citation 关联。
- Card 搜索、详情、证据查看。
- 编译失败和 JSON 解析失败重试。
验收:
- Source 无 raw text 时不能 compile。
- ArticleCard、ConceptCard 能回溯原文证据。
- 同项目内同名或近似概念不会大量重复。
- Card 搜索可用。
目标:把结构化产物从 ChatMessage 中独立出来,但不做暂缓 Quiz。
必须完成:
- Artifact、ArtifactVersion、ArtifactSource、ArtifactCitation、SessionArtifact。
- Artifact 查看、编辑、归档、Markdown 导出。
- Studio Task 创建、取消、重试、进度查询。
- 固定 Plan 与 Skill Registry 初版。
- SkillExecutionLog 脱敏记录。
- 支持类型:REPORT、STUDY_GUIDE、BRIEFING、FAQ、COMPARISON、WIKI_DRAFT。
- 不实现 Quiz、答题、评分、题库。
验收:
- Artifact 不只存在 ChatMessage 里。
- 编辑 Artifact 产生新版本或可追踪修订。
- Artifact 可查看来源和引用。
- Quiz 不进入当前验收。
目标:在 BM25 稳定后增加向量召回和融合排序。
必须完成:
- EmbeddingClient、Embedding 模型配置。
EMBEDDING_BACKFILLTask。- ES index alias 和向量维度版本绑定。
- BM25Retriever、VectorRetriever、WikiRetriever 接口。
- Weighted RRF。
- EvidencePostProcessor 增强:相邻 Chunk 合并、低分过滤、同文档限流。
- RRF trace 进入 RetrievalTrace。
验收:
- 向量失败可降级 BM25。
- 历史 Chunk 可通过 backfill 获得 embedding。
- 权限 filter 始终存在。
目标:让高价值团队内容人工确认后沉淀为 Wiki。
必须完成:
- WikiPage、WikiPageVersion。
- 手动创建/编辑草稿。
- ArtifactVersion 发布为 Wiki 草稿。
- ChatMessage/Citation 一键生成 Wiki 草稿。
- OWNER 发布,MVP 不做复杂审批流。
WIKI_INDEXTask 异步入索引。- Wiki 搜索、版本列表、版本详情。
验收:
- 只有 PUBLISHED 且已索引的 Wiki 进入 RAG。
- 发布失败可重试,不影响草稿。
- Artifact/Wiki/Message 来源可追踪。
目标:在个人生成前提供稳定输出框架。
必须完成:
- 预置 MethodologyCard seed。
- MethodologyMatcher 初版。
- Prompt 注入 workflow、outputStructure、qualityChecklist。
- 不做模板市场和复杂自动抽取。
说明:
- 这是从 Phase 13 前移出的最小切片。
- 用户自定义和高级管理仍留在 Phase 13。
目标:基于 ResearchProject、ArticleCard、ConceptCard、SynthesisCard、MethodologyCard 生成 Artifact。
必须完成:
- PersonalGenerationService。
- ResearchContextService。
- PersonalEvidenceService。
- Report、StudyGuide、Comparison、WorkPrep。
- Artifact 关联 ResearchProject、Source/Card、Citation、MethodologyCard。
- Owner-only 权限。
验收:
- 不全量塞入 Source 原文,只按需回溯证据。
- 生成结果保存为 ArtifactVersion。
- 生成结果默认不进入个人 Wiki。
- 其他用户不能访问个人生成结果。
目标:让用户确认有长期价值的个人 Artifact 能沉淀为个人 Wiki Card,但避免自动污染 ConceptCard。
必须完成:
- SynthesisCard。
- ArtifactCardRelation。
- PersonalArtifactDistillationService。
Artifact -> SynthesisCard确认流程。- ArtifactViewer 中的“沉淀到个人 Wiki”入口。
验收:
- Report / StudyGuide / ReadingNotes 等 Artifact 默认仍只作为 Artifact 保存。
- 用户确认后才创建 SynthesisCard。
- MVP 不直接合并已有 ConceptCard;Concept / Methodology merge proposal 留增强阶段。
- SynthesisCard 能回溯 sourceArtifactId、artifactVersionId 和证据。
目标:补齐会话摘要、用户偏好和工作台长期上下文。
必须完成:
- SessionSummary。
- UserMemory。
- User-Space 私有 SpaceMemory 或明确命名的 WorkspaceMemory。
- Memory item 支持多主题、过期、置信度、来源和删除。
- Memory 查看、编辑、删除、禁用写入。
- MemoryWritebackStrategy,敏感信息过滤。
- DRAFT 永不写长期 Memory。
验收:
- 用户知道哪些 Memory 会影响后续回答。
- Memory 不会泄露给无权限用户。
- 低置信度内容不会覆盖稳定偏好。
目标:补齐方法论卡片的用户自定义、编辑和高级匹配。
必须完成:
- 用户创建/编辑/归档 MethodologyCard。
- 模板版本、状态、createdBy、scope。
- 项目内、个人 Space、系统预置三级匹配。
- 生成任务可选择或自动匹配 MethodologyCard。
验收:
- 预置模板可读。
- 用户模板 owner-only。
- Prompt 中可确认使用了匹配到的方法论。
目标:在前置最小日志基础上补齐管理、指标和 RAG Eval。
必须完成:
- PromptVersion 管理。
- LLMCallLog 查询。
- RetrievalTrace 查询和明细。
- AnswerFeedback 管理查询。
- RagEvalCase、RagEvalRun、RagEvalResult。
- Eval Run 隔离执行,不写正式会话和 Memory。
- Prompt/Trace 脱敏、保留期和访问边界。
验收:
- 可以反查一次回答的 Prompt 版本、检索证据、Citation 和 token/latency。
- Eval 输出 recall@k、MRR、citationCoverage、latency、错误。
- 非管理员不能看敏感日志。
目标:补齐上线后的管理、清理、健康和审计。
必须完成:
- Admin Guard 基于
User.systemRole=ADMIN。 - 用户、Space、任务、Document、Artifact 基础查询。
- 任务重试、取消、mark failed。
- Resource cleanup scan/execute。
ops_cleanup_job和ops_cleanup_item。- AuditLog。
- MySQL、Redis、MinIO、Kafka、ES、LLM Provider 健康检查。
- Dashboard summary。
验收:
- 普通用户不能访问
/api/v1/admin/**。 - 清理默认先 scan,不直接删除。
- 重试和清理写 AuditLog。
- 健康详情不向无权限用户泄露内部配置。
目标:整合前面阶段已经交付的前端薄片,形成完整工作台。
说明:
- Phase 16 不再是从零开始写全部前端。
- 每个后端阶段完成后都应同步交付最小前端薄片。
- Phase 16 只做导航整合、状态管理统一、体验打磨、异常页和端到端验收。
总集成必须覆盖:
- 登录/注册/刷新/退出。
- Space 切换与成员角色展示。
- 团队知识库上传、处理状态、文档列表。
- 团队 Chat 流式输出、停止、Citation drawer、反馈。
- 个人 ResearchProject、Source、Card、生成。
- Studio、Artifact 预览、编辑、导出。
- Wiki 草稿、发布、搜索、版本。
- Memory 查看和编辑。
- Admin 任务、健康、日志、Eval。
| 前端薄片 | 对应后端阶段 | 目标 |
|---|---|---|
| F1 Auth/Space | Phase 0/1 | 登录、注册、刷新、退出、Space 列表、成员查看。 |
| F2 KB Upload | Phase 2/3 | 知识库、分片上传、取消、处理状态、文档列表、检索测试。 |
| F3 Team RAG | Phase 4 | HTTP 问答、Citation 展示、反馈、Trace 调试入口。 |
| F4 WebSocket Runtime | Phase 5 | 流式输出、停止、恢复、DRAFT 会话。 |
| F5 Personal Research | Phase 6/7 | 项目、Source 导入、Card 列表、Card 搜索、证据查看。 |
| F6 Studio/Artifact | Phase 8/11 | Studio 任务、Artifact 预览、编辑、导出、个人生成。 |
| F7 Retrieval/Wiki | Phase 9/10 | Hybrid 搜索调试、Wiki 草稿、发布、搜索、版本。 |
| F8 Memory/Admin/Ops | Phase 12/14/15 | Memory 管理、任务/健康/日志/Eval/Admin。 |
| F9 Workbench Integration | Phase 16 | 统一导航、状态、异常处理和端到端验收。 |
0. 工程骨架、迁移、统一响应、错误码、分页、OpenAPI
1. Auth/User/RefreshToken/Space/SpaceMember/SystemRole/Permission
2. Task + TaskAttempt + TaskEvent + TaskOutbox + Worker
3. FileObject + MinIO + KnowledgeBase
4. DocumentUpload 分片/续传/秒传/cancel/merge
5. Kafka/Worker 投递与补偿
6. Document parse + parsed text + Chunk
7. ES BM25 + indexVersion + Search Debug
8. Team Chat HTTP RAG + Citation + Trace + Feedback
9. WebSocket Runtime + DRAFT lifecycle
10. ResearchProject + Source import + raw text
11. ArticleCard + ConceptCard + Evidence
12. ArtifactVersion + Studio Task + Skill Plan
13. Embedding backfill + VectorRetriever + Weighted RRF
14. Team Wiki Draft/Publish/Index/Search
15. Methodology preset + Matcher
16. Personal Generation
17. Personal Artifact distillation to SynthesisCard
18. Memory deepen
19. Methodology full management
20. RAG Eval + Observability admin
21. Admin/Ops full console
22. Frontend final integration
以下是历史审查中要求先修正的文档项。当前以 docs/PROJECT_STATUS.md 为准,这些 P0 口径已经收口到 CONTRACT / DOCKER_MIDDLEWARE / database_api_blueprint / phase prompts 中;后续编码不应再回到旧口径。
| 优先级 | 文档 | 必须修正 |
|---|---|---|
| P0 | database_api_blueprint.md |
Auth refresh/logout、SystemRole、Task/Outbox、FileObject、soft delete、Phase 14/15 表、移出 Quiz。 |
| P0 | phase_0_1_bootstrap_auth_space.md |
refresh/logout/user profile/systemRole/Flyway/非 dev 密钥要求。 |
| P0 | phase_2_file_upload_async_ingestion.md |
Task 前置、Outbox、FileObject/refCount、upload cancel、过期清理、对象 key。 |
| P0 | file_upload_async_pipeline.md |
/api/v1、uploadId key、FileObject、cancel、补偿投递。 |
| P1 | workspace_chat_runtime_memory.md |
/api/v1、WS 事件名、DRAFT 生命周期、移除 citation_ids JSON。 |
| P1 | phase_6_personal_research_source.md |
Source 必须产出 raw/parsed text,URL 失败重试,去重。 |
| P1 | phase_7_personal_wiki_compiler_cards.md |
Evidence/Citation 关联、Card 搜索、ConceptRelation。 |
| P1 | phase_8_studio_artifact_generation.md |
移出 Quiz,增加 ArtifactVersion,Skill 日志脱敏。 |
| P1 | phase_16_frontend_workspace.md |
改为前端薄片计划,统一 API 和 WS 协议。 |
以下功能不进入当前阶段开发,也不应进入当前验收清单:
- Quiz、测验生成、答题、评分、题库、错题复习。
- 外部研究资料自动发现、论文搜索、搜索 API 推荐资料。
- 商业化计费、套餐、额度售卖。
- 企业级复杂审批流。
- 复杂多人实时协同编辑。
- 完整自主规划 Agent。
- 多模型管理后台和复杂 A/B 实验平台。
文档中如需保留这些内容,必须放入 Future Backlog,并明确标注 DEFERRED。
当前结论:Phase 0/1、Phase 1.5、Phase 2 与 Phase 3 已完成并通过回归测试,下一阶段从 Phase 4 开始。
开始任何阶段前先读取:
docs/PROJECT_STATUS.md
docs/CONTRACT.md
docs/DOCKER_MIDDLEWARE.md
docs/implementation_breakdown.md
docs/features/database_api_blueprint.md
docs/phase-prompts/{current_phase}_prompt.md
docs/features/{current_phase}.md
当前下一步:
Phase 4: 团队 RAG Chat 与 Citation