feat(web): 项目级配置 + 会话命名/历史 + 设计文档纳入影响调查

- 会话支持 name/project 字段,上传要件定义后自动命名;前端侧边栏会话历史 + localStorage 恢复,顶部只显示会话名
- 新增 ProjectsStore(SQLite)与 /api/projects CRUD;绑定项目后 _rebuild_source 合并模板/规则/代码库/设计文档,上传区仅要件定义
- StructuredSource.design_docs 与 ImpactReport.design_references;影响调查新增既有设计文档确定性交叉引用(无 LLM)
- 同步更新 docs/design.md §12.7、README、_AI_USAGE_LOG.md;全量测试 558 通过,覆盖率 99.10%
This commit is contained in:
lhl
2026-08-27 12:13:28 +08:00
parent 838a93720e
commit 916c5beed7
18 changed files with 1174 additions and 65 deletions
+10
View File
@@ -214,12 +214,21 @@ class ChangeAnalysis:
warnings: list[ImpactWarning]
@dataclass
class DesignReference:
"""既有设计文档命中引用(Type A 确定性交叉引用)"""
doc_name: str # 设计文档文件名
identifier: str # 命中的代码/表标识符
snippet: str # 摘录(前后文片段)
@dataclass
class ImpactReport:
"""影响调查书(MVP 子集,供 Writer 生成 + 独立下载)"""
metadata: dict
change_analysis: ChangeAnalysis | None = None
summary: dict = field(default_factory=dict)
design_references: list[DesignReference] = field(default_factory=list) # 设计文档命中
@dataclass
@@ -270,6 +279,7 @@ class StructuredSource:
image_analyses: list[ImageAnalysis]
existing_system: ExistingSystemInfo | None
comments: list[CellComment]
design_docs: list[RuleDocument] = field(default_factory=list) # 既有系统设计文档(Type A,仅参考不做写入规则)
impact_report: "ImpactReport | None" = None # 影响调查书(生成后回填,门控未提供时为 None)