docs: ai 协作文档体系重构与多 ai 仲裁结果落地

1.AI 协作文档体系重构(objections/worklines/contracts+matrix.md)

2.coord 仲裁文档(final-decisions/cross-review/final-rulings/orchestration)

3.各服务 01/02 文档补全

4.共享包初始化(shared-ts/shared-go/hooks/ui-components/ui-tokens)

5.Proto 契约补全

6.004 架构影响地图更新

7.端口分配表

8.设计规格文档
This commit is contained in:
SpecialX
2026-07-10 12:58:22 +08:00
parent 2a2a56f541
commit faaaf29f67
120 changed files with 23201 additions and 2 deletions

View File

@@ -0,0 +1,48 @@
import type { ReactNode } from "react";
/**
* RequirePermission - L3 组件级视口控制
*
* 用途:根据当前用户权限点决定是否渲染 children。
* 无权限时不渲染 children返回 null 或自定义 fallback
*
* 权限点命名遵循 F7 裁决:`<RESOURCE>_<ACTION>`(如 `EXAM_READ`、`GRADE_READ_CHILD`)。
* 数据范围用后缀 `_OWN`/`_CHILD`(如 `GRADE_READ_CHILD`)。
*
* 注意:本组件依赖 `@edu/hooks` 的 `usePermission()`。为避免循环依赖,
* 权限检查函数通过 props 注入由调用方apps/*)从 usePermission() 获取后传入。
*
* @example
* import { usePermission } from "@edu/hooks";
* const { hasPermission } = usePermission();
*
* <RequirePermission perm="EXAM_CREATE" hasPermission={hasPermission}>
* <Button>新建考试</Button>
* </RequirePermission>
*/
export interface RequirePermissionProps {
/** 权限点F7 规范:<RESOURCE>_<ACTION> */
perm: string;
/**
* 权限检查函数(由 @edu/hooks 的 usePermission().hasPermission 注入)
* 返回 true 渲染 childrenfalse 渲染 fallback。
*/
hasPermission: (perm: string) => boolean;
/** 子节点(有权限时渲染) */
children: ReactNode;
/** 无权限时的降级 UI未提供时返回 null */
fallback?: ReactNode;
}
export function RequirePermission({
perm,
hasPermission,
children,
fallback = null,
}: RequirePermissionProps): ReactNode {
if (!hasPermission(perm)) {
return fallback;
}
return children;
}