feat(health): add P0 health channel kernel and encrypted health zone.
Lock health recording behind confirm-only state machines, reject public publishes for the health category, and ship the 14-day experiment Page Data templates with tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -73,6 +73,7 @@ const CATEGORY_DESCRIPTIONS: Record<MindSpaceCategory['code'], string> = {
|
||||
oa: '上传文档、表格和资料,让 AI 生成报告与页面',
|
||||
private: '已停用',
|
||||
public: '管理可公开使用的页面、图片和静态资源',
|
||||
health: '加密健康档案,仅本人或口令访问',
|
||||
draft: '继续编辑尚未发布或等待安全检查的页面',
|
||||
archive: '保存不再活跃但仍需要保留的内容',
|
||||
};
|
||||
@@ -80,6 +81,7 @@ const CATEGORY_DESCRIPTIONS: Record<MindSpaceCategory['code'], string> = {
|
||||
const CATEGORY_ACTIONS: Partial<Record<MindSpaceCategory['code'], string>> = {
|
||||
oa: '进入工作区',
|
||||
public: '查看发布',
|
||||
health: '查看健康档案',
|
||||
draft: '继续创作',
|
||||
};
|
||||
|
||||
@@ -1283,7 +1285,7 @@ export function MindSpaceView({
|
||||
return;
|
||||
}
|
||||
setAssets(await listMindSpaceAssets(category.code));
|
||||
if (['draft', 'oa', 'public'].includes(category.code)) {
|
||||
if (['draft', 'oa', 'public', 'health'].includes(category.code)) {
|
||||
const { items } = await listMindSpacePages({ categoryCode: category.code, limit: 100 });
|
||||
setPages(items);
|
||||
if (category.code === 'draft') {
|
||||
@@ -3186,7 +3188,7 @@ export function MindSpaceView({
|
||||
<div className="mindspace-category-layout">
|
||||
<div className="mindspace-grid-zones">
|
||||
{space.categories
|
||||
.filter((category) => ['oa', 'public', 'archive'].includes(category.code))
|
||||
.filter((category) => ['oa', 'public', 'health', 'archive'].includes(category.code))
|
||||
.map((category) => (
|
||||
<article
|
||||
className={`mindspace-card mindspace-card-compact mindspace-card-${category.code}`}
|
||||
|
||||
@@ -67,6 +67,17 @@ export const PREVIEW_SPACE: MindSpace = {
|
||||
sortOrder: 3,
|
||||
itemCount: 3,
|
||||
},
|
||||
{
|
||||
id: 'cat-health',
|
||||
code: 'health',
|
||||
name: '健康档案区',
|
||||
visibilityPolicy: 'private',
|
||||
aiAccessPolicy: 'explicit_asset_grant',
|
||||
publishPolicy: 'password_required',
|
||||
isSystem: true,
|
||||
sortOrder: 30,
|
||||
itemCount: 0,
|
||||
},
|
||||
{
|
||||
id: 'cat-draft',
|
||||
code: 'draft',
|
||||
|
||||
+1
-1
@@ -424,7 +424,7 @@ export type MindSpaceQuota = {
|
||||
|
||||
export type MindSpaceCategory = {
|
||||
id: string;
|
||||
code: 'oa' | 'private' | 'public' | 'draft' | 'archive';
|
||||
code: 'oa' | 'private' | 'public' | 'health' | 'draft' | 'archive';
|
||||
name: string;
|
||||
visibilityPolicy: string;
|
||||
aiAccessPolicy: string;
|
||||
|
||||
Reference in New Issue
Block a user