本次更新实现了完整的知识管理工作流系统,包括:
- 知识节点:创建、编辑、版本控制
- 验证流程:提交、审核、批准/拒绝
- 分叉与合并:分支管理、提案投票、去中心化决策
- 评论讨论: threaded comments、投票、通知
- 订阅系统:关注节点、实时通知
- 演化历史:完整审计追踪、CAS 指标快照
- id: UUID 主键
- title, content, summary: 内容字段
- tags[], category: 分类标签
- emergence_level, complexity_score, connectivity_score, adaptation_score: CAS 指标
- version, parent_id, is_latest_version: 版本控制
- status: draft|pending|validated|merged|deprecated
- validation_count, fork_count, merge_count: 统计
- author_id, co_authors[]: 作者信息
- metadata: JSONB 扩展字段- node_id: 关联知识节点
- validation_type: fact_check|logic_review|completeness|relevance
- confidence_score: 0-1 置信度
- status: pending|approved|rejected|needs_revision
- reviewer_id, review_comments: 审核信息- original_node_id, forked_node_id: 关联节点
- fork_type: improvement|alternative|correction|extension
- merge_status: pending|merged|rejected|abandoned- source_node_id, target_node_id: 源和目标节点
- proposal_type: merge|integrate|replace|supplement
- votes_for, votes_against, voters[]: 投票系统
- status: pending|approved|rejected|withdrawn- event_type: created|updated|forked|merged|validated|deprecated
- old_values, new_values, delta: 变更详情
- emergence_snapshot, complexity_snapshot: CAS 指标快照- parent_comment_id: 支持回复嵌套
- comment_type: general|question|suggestion|critique
- upvotes, downvotes, voters[]: 投票- subscription_type: all|updates|comments|validations
- notify_email, notify_in_app: 通知偏好trg_knowledge_nodes_updated: 自动更新updated_attrg_record_node_evolution: 自动记录演化历史trg_update_validation_count: 自动更新验证计数trg_update_fork_count: 自动更新分叉计数
hot_knowledge_nodes: 热门节点排行榜pending_validations: 待验证列表active_contributors: 活跃贡献者knowledge_graph_edges: 图谱连接关系
import workflow from '@/lib/workflow';
// 创建节点
const result = await workflow.createKnowledgeNode({
title: 'Introduction to CAS',
content: '...',
tags: ['cas', 'complexity'],
category: 'theory'
}, user);
// 更新节点
await workflow.updateKnowledgeNode(nodeId, {
content: 'Updated content',
status: 'pending'
}, user);
// 获取节点
const node = await workflow.getKnowledgeNode(nodeId);
// 热门节点
const hotNodes = await workflow.getHotNodes(20);
// 搜索
const results = await workflow.searchNodes('complexity', {
category: 'theory',
tags: ['cas'],
minEmergence: 0.5
});// 提交验证
await workflow.submitValidationRequest(nodeId, {
validation_type: 'fact_check',
comments: 'Please verify the claims',
confidence_score: 0.8
}, user);
// 审核验证
await workflow.reviewValidationRequest(validationId, 'approved',
'Looks good!', user);
// 获取待验证列表
const pending = await workflow.getPendingValidations();// 创建分叉
await workflow.createFork(originalNodeId,
'Improving explanation', 'improvement', user);
// 提交合并提案
await workflow.submitMergeProposal(sourceId, targetId, {
proposal_type: 'merge',
justification: 'These complement each other',
confidence_score: 0.9
}, user);
// 投票
await workflow.voteOnMergeProposal(proposalId, 'for', user);
// 决定合并
await workflow.decideMergeProposal(proposalId, 'approved', user);// 添加评论
await workflow.addComment(nodeId,
'Great explanation!', 'general', user);
// 回复评论
await workflow.addComment(nodeId,
'I agree', 'general', user, parentCommentId);
// 获取评论
const comments = await workflow.getNodeComments(nodeId);
// 投票评论
await workflow.voteComment(commentId, 'up', user);// 订阅节点
await workflow.subscribeToNode(nodeId, 'all', user);
// 取消订阅
await workflow.unsubscribeFromNode(nodeId, user);
// 获取我的订阅
const subs = await workflow.getUserSubscriptions(userId);// 节点历史
const history = await workflow.getNodeEvolutionHistory(nodeId);
// 全局动态
const activity = await workflow.getRecentActivity(100);import { calculateCASMetrics, updateNodeCASMetrics } from '@/lib/workflow';
// 计算指标
const metrics = calculateCASMetrics(node, connections, validations, forks);
// 更新指标
await updateNodeCASMetrics(nodeId, metrics);- ✅ 公开查看已发布节点
- ✅ 作者管理自己的节点
- ✅ 验证者可更新状态
- ✅ 认证用户可提交
- ✅ 公开查看
- ✅ 审核者可更新
- ✅ 认证用户可创建
- ✅ 公开查看
- ✅ 审批者可决定
- ✅ 认证用户可创建
- ✅ 公开查看
- ✅ 作者可编辑/删除自己的
1. 用户创建知识节点 (draft)
2. 提交验证请求 → 状态变为 pending
3. 验证者审核 → approved/rejected
4. 批准后 → 状态变为 validated
5. 节点进入公开知识库
1. 用户 A 发现节点需要改进
2. 创建分叉 (fork) → 在新版本上编辑
3. 提交合并提案
4. 社区投票
5. 达到阈值后自动合并
1. 用户对某观点有异议
2. 创建 alternative fork
3. 双方各自发展
4. 社区通过投票选择主流版本
5. 或保持多元并存
# 在 Supabase SQL Editor 中依次执行:
# 1. 001_cas_emergence_algorithm.sql
# 2. 002_user_system.sql
# 3. 003_knowledge_workflow.sql// 确保 supabase client 已正确配置
import { supabase } from '@/lib/auth';
import workflow from '@/lib/workflow';// 创建测试节点
const testNode = await workflow.createKnowledgeNode({
title: 'Test Node',
content: 'Testing the workflow',
status: 'draft'
}, testUser);
// 验证流程
const validation = await workflow.submitValidationRequest(
testNode.data.id,
{ validation_type: 'logic_review' },
testUser
);- 全文搜索 GIN 索引
- 状态、分类、标签索引
- 时间戳降序索引
- 复合索引优化常用查询
- 使用物化视图缓存热门数据
- 分页加载大数据集
- 客户端过滤减少数据库负载
- AI 辅助验证: 自动检测事实错误
- 智能推荐: 基于 CAS 指标推荐相关内容
- 可视化图谱: D3.js 力导向图展示知识网络
- 导出功能: PDF、Markdown、JSON 格式
- API Webhooks: 第三方集成
- 多语言支持: i18n 国际化
- ✅ 新增知识节点完整 CRUD
- ✅ 实现验证工作流
- ✅ 分叉与合并系统
- ✅ 评论和讨论功能
- ✅ 订阅和通知
- ✅ 演化历史追踪
- ✅ CAS 指标计算
- ✅ RLS 安全策略
- ✅ 自动化触发器
- ✅ 优化视图和查询
MIT License - 参见 LICENSE