feat(版本): 优化概览与只读状态

关键改动:

- 增加需求排序和版本只读状态规则及测试

- 完善版本概览阶段耗时、项目页和工作台展示

- 优化小宝预警请求节流、建议状态和风险过滤

Co-Authored-By: Codex GPT-5 <codex@openai.com>
This commit is contained in:
Script Generator
2026-06-30 18:18:18 +08:00
parent 3d3d56697a
commit eef3c8f000
32 changed files with 1072 additions and 289 deletions

View File

@@ -4,7 +4,8 @@ import type { XiaobaoVersionRisk } from './xiaobao-risk';
import { buildRiskInsightDisplaySignature, normalizeRiskInsightDisplaySignature } from './xiaobao-risk-ai';
import { WORK_HOURS } from './work-hours';
const UNFINISHED_VERSION_STATUSES = new Set(['planned', 'developing', 'paused']);
const WARNING_VERSION_STATUSES = new Set(['planned', 'developing']);
const PAUSED_PROJECT_STATUSES = new Set(['paused']);
const HIGH_RISK_LEVELS = new Set<XiaobaoVersionRisk['riskLevel']>(['at_risk', 'likely_delayed', 'blocked']);
const PAGE_REFRESH_ADVICE_PATTERNS = [
/(刷新|重新加载|重载).*(页面|浏览器|小宝|预警)/i,
@@ -41,7 +42,8 @@ export function filterXiaobaoWarningVersions(
filter: XiaobaoWarningVersionFilter,
): VersionWithContext[] {
return versions.filter((version) => {
if (!UNFINISHED_VERSION_STATUSES.has(version.status)) return false;
if (!WARNING_VERSION_STATUSES.has(version.status)) return false;
if (version.projectStatus && PAUSED_PROJECT_STATUSES.has(version.projectStatus)) return false;
if (filter.canManage) return true;
if (!filter.userName) return false;
return (version.members ?? []).some((member) => member.name === filter.userName);