30 Commits

Author SHA1 Message Date
lili
c2777cc71c feat(ai): 接入Dify运行时Adapter
Some checks failed
Backend Maven CI / backend-local (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 00:57:46 -07:00
lili
2dde0a45ef docs(mvp): 八域交付盘点+1.0.0交付计划+收尾对齐
- 8域交付盘点(codex多实例+claude深盘、均亲验以代码+真测试为准)→收敛5类系统性病灶
- 新增 docs/mvp/1.0.0-交付计划.md:基准线A最小可用子集、8域对账矩阵、E0-E7 Epic分解、反假绿验证标准
- 进度总账加指针对齐(接口门completed≠端到端可闭环;可闭环严判完成度~55-65%)
- 临时-01~04归档删除(SSE/KB物化过程文档、结论已并入memory与各.agent)、大纲清理悬空引用、临时-05并入E4

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 22:09:24 -07:00
lili
c12eb013cd docs(market): D0-fork KB 物化执行 plan(临时-04、supersede 临时-03)
D1 澄清坐实真越权=安装者读到发布者私有内容(非安装者间):market 对 knowledge/ragflow 零依赖(src+pom 双空 spot-check)→上架不 fork、安装者共享发布者活 dataset、上架后 KB 仍可加私有文档(上传无 market 门禁)。用户拍 D0-fork(发布侧 fork 纯公开副本、物理隔离)。

临时-04 四单元:U-fork(发布侧 fork 公开副本核心新工程:上架事件→knowledge 异步 createDataset+逐文档 uploadDocuments+重索引,RAGFlow 无 copy API 必重走三步 spot-check 确认)/U-materialize(安装侧物化去隔离、binding 指公开副本)/U-retrieve(检索去隔离)/U-verify(发布者私有不泄露、复用临时-03 U0 反向基线)。关键推荐:fork 时机=上架 markListed(副本=公开快照语义)、接线=事件驱动(复用 market EventPublishOutbox+ADR-017、不绑架审核事务、保 market 不反依赖 knowledge)、DDL=初版不需(V5/V14 列+JSONB)。临时-03 标 superseded 保留演进史、U0 证据+四硬事实继承。待拍 D4-D10 后执行。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 09:53:19 -07:00
lili
a8a26983fc test(market): U0 spike 钉 KB 物化共享越权基线 + 拍 D1=S 回填
market install KB 物化 U0 spike 产 D1 决策证据(只 spike 测试零业务代码):MuseKnowledgeRetrievalApiImplTest +2 case(13/0 独立复跑确认)——①他租户私有 chunk 原样返回证伪租户过滤 ②ArgumentCaptor 抓 RetrieveChunksCommand documentIds/metadataFilter 均 null 证整库扫描零隔离;同作 U4 隔离回归反向基线(隔离补到位后应转红)。活体真 RAGFlow 整库返回坐实。

U0 揪出潜伏 bug:检索发 metadata_filter 但 RAGFlow 官方契约(context7)是 metadata_condition→被静默忽略(乱值条件仍返 baseline)、字段名修正纳入 U3。用户拍 D1=S(补隔离后共享、真最小留痕):临时-03 回填 S 分支定调(隔离优先 metadata_condition+物化打安装维度元数据+U4 复用 spike 反向基线)。进度总账回写方向全链路。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 09:14:14 -07:00
lili
76a7e0d312 docs(market): KB 物化执行版 plan(临时-03、待 D1 拍板后执行)
承临时-02 拍板(B' installed_ref + KB 先行)出 KB 物化执行版 plan,拆 U0-U4 可独立验证实现单元。出 plan 时一手代码核验揪出四条改变工作量/性质的硬事实(均 spot-check 坐实):①kb_id 当前被 market assetId 污染(KnowledgeHandoffLanding sourceId=assetId)→物化须去污染改写;②assetId→发布者 dataset 反查链跨 BC 断(market.api 仅 HandoffTokenApi)→需新增 MarketAssetSourceApi 本地读端口;③多租户共享同一 RAGFlow dataset 必越权(retrieveChunks body 不含 tenant+document_ids=null 全量返回、parseChunks 无 chunk 租户二次过滤)=安全红线→U0 从"验证能否共享"转为"共享前先补 chunk 级隔离"硬门;④muse_source_propagation_target 表零命中→U4 回滚改基于真实 source_event 机制。

物化落点严格在 knowledge 绑定路径(非 install、handoff 非物化桥、安装解耦不动)。初版判定不需新 Flyway 迁移(V5/V14 已备列)。决策点 D1(共享 S/复制 C/暂缓 H)待人类先看 U0 spike 证据再拍。两图文(text+mermaid + html 人读图)+大纲注册。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 08:33:41 -07:00
lili
26ff1af374 docs(market): market install 下游物化方案设计文档(评审版、待 review 拍板)
market install 后下游物化方向(用户选)方案设计:深调研 2 agent+spot-check 坐实两物化断点——install 只写 muse_market_installation 与 ai/knowledge 解耦、KB bind kbId=parseLong(sourceId)不建本地 muse_knowledge_base 行致检索 no_dataset 第四门省略、agent slot 放宽但 runtime requireVisibleAgent 拒裸引用。出 C(完整物化)/B(惰性)/B(installed_ref 最小留痕)/暂缓 四方案对比。

推荐 B(installed_ref 最小留痕、KB 优先共享发布者 dataset、物化落点放目标域绑定路径非 install——handoff 非物化桥、安装解耦正确不应改)。地基不对称坐实:KB(V5 kb_type/source_market_asset_id)+agent(V27 source_market_asset_id、注释物化后续主线本列先就位)列已备、但 agent market_installed 类型有文档(后端-04)无实现→两域工程量不同。决策点待拍板:物化深度(倾向 B)、时机(绑定同步非惰性)、dataset 共享 vs 复制(唯一硬风险、共享前必验多租户 RAGFlow 隔离)、agent market_installed 落地量(否则 KB 先行)、召回回滚。两图文+大纲注册。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 06:47:45 -07:00
lili
09c35f5eee docs(ai-e2e): AI 流 SSE 长任务超时修复方案评审文档(待 review、不改 code)
studio e2e ai-generation 真红深诊出 SSE 协议/时序 code bug,按规范(产品行为变更先评审)出方案评审文档供 human review。两层根因:①server 启动漏 source acceptance env(AI 凭据)②后端 DEFAULT_TIMEOUT_MILLIS=30s 同时作 SSE 连接死线(:60)+poll deadline(:188)、< 上游自己 180s 总窗口(MUSE_AI_NEW_API_TOTAL_TIMEOUT_SECONDS),前端 connectAIStream 无重连(AIPanel 流结束不重连不报错)。

推荐 A1(启动脚本固化 AI 凭据)+候选③(后端放宽死线兜底+前端断连重连容错),排期紧分阶段 A1→①→②。3 决策点待 review:timeout 取值(应 ≥180s+余量、非初稿 120s)/是否上前端重连(推翻 AI 流一次性设计)/重连续传幂等候选去重。text+2 mermaid(因果时序+选项关系)+html 人读图;大纲注册 v7→v8。本轮未改 code、待 review 后执行。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 19:18:21 -07:00
lili
3f59ff9079 docs: 订正 market authz type:integer 表述——经核是主键 ID 引用非 ADR-020 业务标识
深入调研发现 market openapi authorizationSnapshotId(integer)是 muse_market_authorization_snapshot/summary 表主键 ID 引用(physical PK int64)、非 ADR-020 管的业务标识(market 业务标识字段 authorizationSnapshot 已 string、合规);符合 ADR-020"物理主键 Long"故不需对齐,盲目改 integer→string 反违"拒字符串主键"。订正 ADR-020 后果段(架构-03 v12)+ 进度总账 2026-06-25 此前"market type:integer 待对齐(同源 ADR-020)"的不准确表述。market 对外暴露主键 ID 是否违后端-04 属独立契约议题、与 ADR-020 不同源、本轮不改。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 02:36:58 -07:00
lili
a16c59662f fix(ai): 修 AI 生成候选采纳断层,授权快照 id 改字符串承载 envelope(ADR-020 方案 A)
真生成候选 authorization_snapshot_id=null 恒不可采纳(1041001001),根因:runtime envelope 是字符串 rpe-local-uuid 但 authz 列 BIGINT 存不下,numericEnvelopeId/requireNumericAuthorizationSnapshot/parseLongQuietly 三处降级门禁致恒拒。方案 A(人类拍板,ADR-020):V30 迁移 muse_ai_suggestion+muse_content_block_source_attribution 的 authorization_snapshot_id BIGINT→VARCHAR(128)(仿 V14);AI 侧直落字符串 envelope(删 numericEnvelopeId);Content 放开两道数值门(删 requireNumericAuthorizationSnapshot/parseAuthorizationSnapshotId/parseLongQuietly);DO authz Long→String 全调用方适配;揭并修 P1rContentMergeGeneratedSuggestionIT 假绿(原注入数值 9001,真 runtime 不产数值,改真字符串 envelope)。活体真验(muse_slice_live,V30 applied):真生成 suggestion authz 现存 rpe-local 字符串→采纳 merge code=0+block revision 69→70(修复前恒 1041001001)→归因新行 authz 字符串,AI 生成→采纳→Canonical 全链打通。编译+test-compile SUCCESS,112 单测绿,未误伤 muse_agent_slot_binding(不在 V30 范围)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 01:03:54 -07:00
lili
40d4bdb527 docs(design-docs): 清理对从未创建的 doc/dev/* 的全部引用(消除幽灵权威归属)
断链扫描发现 design-docs 把整套 doc/dev/00..09(路线图/阶段/IA验收门禁/真实现状差距)当 SSOT/门禁权威反复引用约 16 处,但该套文档 git 全历史从未创建 → 读者按图索骥全 404。职责实已被现有文档承担,逐处改指或墓碑标注:路线图/阶段→进度总账;验收门禁→覆盖 JSON+verification 规则;真实现状差距→项目功能与进度总览;产品形态→产品/架构分册;RAGFlow 落地→muse-module-knowledge。

改动:00-文档大纲(SSOT归属/角色导航再读列断链/专题-03描述/职责表/单一归属 共5处 + v6→v7);内容映射表(dev路线图块/产品形态行/个人中心/Sa-Token/IA-0~3门禁/IA gate 共~11处 + v6→v7);架构-03 ADR(参考落地2处 + v9→v10)。

验证:断链扫描 3→1(唯一剩 dev-baseline 历史区格式占位符,无害);design-docs 残留 doc/dev 仅墓碑文字标注,0 可点击断链。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 09:38:12 -07:00
lili
329db944ff docs: 进度口径收敛到机械唯一源——修正三套矛盾数字(147/100→233/233) + 现状基线降级
排查发现进度数字三套互相矛盾:总览/现状基线/主台账历史段=147/86、agent-specs=100/127、module-reality=233/0。核机械真值:覆盖 JSON summary=233/233 completed/0 needs(每 op 带 testFiles 证据 + P1rApiCoverageReportTest 校验 summary 自算防手工拨)。⚠️ JSON generatedAt=2026-05-25 未随内容刷新(手工维护痕迹),已在文档标注以 summary+testFiles 为准。

修正:① 总览(我上轮新建,误抄过时台账)147/233→233/233、各域 full、接口门≠端到端两口径分清、定位为人读封面(权威以台账/JSON为准);② 主台账 头部加机械源口径声明(233/0)+门禁中→满+验收债标已清零;③ 现状基线降级为 2026-06-13 历史快照(顶部时效横幅+性质去SSOT);④ AGENTS序2/module-reality 改引用;⑤ agent-specs/.agent 注记历史数字;⑥ meta-schema review 回指 execution v0.2 已证伪地基(待决策提案);⑦ design-docs/00 加'设计≠进度';⑧ dev-baseline 申明旧 SSOT 自称失效。

确立单一真实源:设计=design-docs;进度=进度总账(叙述)+覆盖JSON(机械);人读=项目功能与进度总览(封面)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 05:32:32 -07:00
lili
ba6e5f1745 docs(design): 登记对象存储字节代理交付 + 失败关闭安全姿态 (U8)
- 架构-02(权威):细化 Download Credential/Export Package 不变式——租户/用户命名空间隔离、稳定存储路径字节代理、不签发签名 URL、避免 IDOR。
- 架构-03:新增 ADR-019(稳定路径字节代理 + SSRF 白名单 + 服务端权威 scanStatus 失败关闭 + 账户导出脱敏),更新 §3 结论。
- 后端-03 §6/§9/§12 + 后端-05 §4.9/§4.10:导入预检 SSRF/scanStatus、下载字节代理、账户脱敏的流程与契约姿态,均引用 架构-02/ADR-019,不重复定义。
- 4 文档版本号递增至 2026-06-19。无 V24 迁移(列已齐)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:57:10 -07:00
lili
cb57b88866 docs(sse): 前端/后端 SSE 契约反向对齐 sse.ts 真实实现
studio src/lib/sse.ts 已是真实实现(connectAIStream/connectEventStream 双函数 +
fetch/ReadableStream + 按 event: 行分发),但三处正式文档仍停留在虚构契约,故反向对齐(反假绿):
- 前端-01 v6→v7:AI 流改两步(POST /ai/tasks 创建→GET /ai/tasks/{taskId}/stream 建流);
  事件流路径 /events/stream→/events;明确按 SSE event: 行分发。
- 后端-05 v8→v9:补 GET /ai/tasks/{taskId}/stream 端点 + SSE 事件契约表
  (chunk/quality_check/done/error 及各 payload);记 done 的 taskId/suggestionId
  后端 Long 序列化为 JSON 数字、与候选 uuid 字符串契约不一致(待后端统一,前端已在解析边界 String 归一)。
- dev-baseline/muse-studio/CLAUDE.md:SSE 章节由虚构 useAIStream/useEventStream hook
  改写为真实双函数 + 线格式 + 约束(AI 流不重连、事件流指数退避 1/2/5/10s、AbortController 关闭、无凭证 fail-closed)。
- sse.ts:onDone 注释补 WHY string(Long→JSON number→String 归一)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 02:55:24 -07:00
lili
e181669197 chore(agent-infra): 建立 agent 开发基建、清理历史 churn 并以 BC 违例整改验证
本会话三部分交付,均经 JDK21 真实构建验证(非退出码,读 BUILD SUCCESS + Tests run):

1) Agent 开发基建(机械门禁优先)
- 入口与中枢:AGENTS.md、.agents/{knowledge,rules,skills,workflows}、CLAUDE.md 订正
- 订正 .gitignore:移除对 .agent/.agents 的忽略——它们是版本化 agent 基建,须入库(此前被忽略致克隆即缺)
- 机械门禁:CI 真跑测试(maven.yml JDK21、去 -Dmaven.test.skip)、覆盖台账去硬编码、
  BC 边界 ArchUnit 门(BcBoundaryArchTest)、契约先行门(ContractFirstGateTest:Flyway 卫生 + OpenAPI 结构)
- 单一进度源 docs/mvp/进度总账.md + 7 个 BC per-module .agent + mise.toml(锁 JDK21)
- P1 增量:AiSuggestionMergeProjectionFacade(Gap A)、ContentSourceServiceImpl 事务化 outbox 回流(Gap B)

2) 过期历史文档清理(97 份 churn,git 可恢复)
- 删 docs/memorys(34)、agent-specs 审阅/执行版+迁移review(34)、superpowers/plans+specs(25)、
  design-docs/临时+memorys(4);保留 superpowers/reports/coverage(门禁依赖)
- 唯一干货蒸馏入 .agents/knowledge/external-deps-and-gotchas.md;订正大纲/映射表/基线悬空引用

3) P1 harness 验证:消除已登记 BC 违例 ContentMuseWorkOwnerFacade
- content-api 新增只读端口 MuseContentWorkOwnerApi + content-server 实现(读自有 DAL);
  AI 适配器改消费该端口、移除全部 content.dal 依赖,AI 业务规则与 4 消费者不变
- 删除 ArchUnit 豁免 → 门禁收紧(反向红 31 例 / 正向绿;适配器单测 13/0F、端口实现 7/0F)

注:muse-studio/src(SSE 相关 4 文件)与 muse-module-ai/pom.xml(移除孤儿 contract-server)
为本会话之前已存在的未提交改动,非本次工作,未纳入本提交。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 04:38:07 -07:00
zizi
9df67b2794 docs(admin): 校准管理端契约边界 2026-05-24 20:37:57 +08:00
zizi
33aad93bef 提交全维度文档review后的22项架构决策落地
基于产品/架构/流程/前端/后端五维度并行review,澄清并落地22项关键决策:

架构层:Governance按消费者归属拆散、MetaSchema独立模块、
Source传播改为事件驱动自治、去掉Candidate Decision Envelope
和needs_recheck中间状态、Neo4j决策为依赖RAGFlow GraphRAG

后端层:Entitlement统一为可变表+审计日志、API版本策略采用
X-API-Version Header、知识实体唯一键加scope字段

前端层:SSE实时通信(AI stream独立+事件统一)、正文持久化
IndexedDB安全网、Block粒度为场景/小节级

产品层:范围不变UX解决复杂度、知识确认默认自动+冲突时人工
2026-05-24 04:28:52 +08:00
zizi
9eacebb630 提交四仓工程架构索引 2026-05-24 01:41:23 +08:00
zizi
e50aa02b41 提交整体设计文档一致性修复 2026-05-24 01:14:34 +08:00
zizi
8d7b47b468 提交前后端架构阶段文档 2026-05-23 23:55:00 +08:00
zizi
4ba1257b7f 提交专题阶段文档 2026-05-23 21:20:25 +08:00
zizi
cb568cee5c 提交架构阶段文档 2026-05-23 19:07:52 +08:00
zizi
ab4deeb994 提交流程四分册与引用迁移 2026-05-23 17:55:05 +08:00
zizi
b47f39c6bd 提交产品03用户旅程文档 2026-05-23 15:04:46 +08:00
zizi
fcb14bc62f 提交产品02E至02G详细规格与原型 2026-05-23 13:15:52 +08:00
zizi
92a285db96 修复产品02A至02D评审问题 2026-05-22 23:18:03 +08:00
zizi
2b48abc11a 提交产品02A至02D详细规格与原型 2026-05-22 21:58:10 +08:00
zizi
97c4fab3bc 提交产品02B管理员控制台规格与原型 2026-05-22 16:15:58 +08:00
zizi
4896a53c2e 更新产品01产品定位与核心价值 2026-05-22 03:32:45 +08:00
zizi
a40411cfad 添加生成质量门控与创作健康度设计方案及产品形态阶段化重设计计划 2026-05-22 01:27:28 +08:00
zizi
0d0e1d4473 添加产品设计文档
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-20 10:38:31 +08:00