Commit Graph
16 Commits
Author SHA1 Message Date
adminandClaude Fable 5 0c98b54b6a chore(bioflow): compile_sdk 白名单补 bioflow_proxy.py——SSE 流式反代属断流崩溃根治同型高危点(TL 运维,2026-09-03 先例)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 06:56:10 +08:00
jerryandClaude Fable 5 8467dec3a8 fix(bff): 断流崩溃根治——SSE 取消链模块明文化 + 团队文档归档
客户端中途断开流时 Cython 协程 __Pyx_Coroutine_SendEx 断言 abort 整个 BFF。
证据链:3.2.8 崩 db.c / 3.3.0 仍崩(升级无效) / db 明文后迁移 sse_relay.c,
证明取消链上任意 Cython 协程均可触发。最终把 db.py/qa.py/sse_relay.py
加入编译白名单(明文),隔离实例断流探针 10/10 存活,生产同构建实测通过。
代价:3 模块失去编译硬化(无凭据内容),编译模块 30->27。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 21:13:56 +08:00
jerryandClaude Fable 5 5db3ead73e feat(docgen): doc_writer 能力全链——vstore 独立服务 + BFF docgen 路由 + 前端文档工作台
- vstore 独立安装包(8094):解析/嵌入/加密 vault/faiss 检索,存储路径支持本地 file 与 http(s):// URL,启动握手校验,集群化预留(embed 独立模块)
- BFF docgen 路由:上传入库/generate/编辑/导出/下载/主库管理,意图护栏(与前端同词典),vstore 失败兜底,quota 507 与 TTL 惰性清理
- 前端:自然触发意图路由、拖拽上传 chips、能力徽标、右侧文档 TAB(WYSIWYG 编辑/prompt 修改/PDF+DOCX 导出下载)、右栏拖宽+手柄仿左栏
- 批量导入工具 docgen_import.py(并发 8、导入即加密+删源明文)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 21:13:37 +08:00
jerryandClaude Fable 5 bbd5db2315 feat(capabilities): S6 Superpowers+S7 终验(文档/humanizer CJK 修复/验收脚本)
- prompts/superpowers_{review,answer_quality,minimal_code}.md + prompt_pack.py
- agentic_controller/answer_composer Superpowers 注入点(env 总闸,关态逐字节一致)
- compile_qa.sh: prompts/ 目录自动拷贝
- humanizer: CJK 逗号规则 + 引用保护收窄(只护标记本身,带引用句可润色)
- docs: README 能力矩阵+env 表 / ARCHITECTURE Gateway 章 / API §6 / PRD:17 /
  TEST_CASES:126 多轮语义 / CHANGELOG
- tooling/cap/final_acceptance.sh 终验矩阵
- 终验: 金标 16/20 regressions=0, 多轮指代 PASS, 热加载 PID 不变 PASS,
  Humanizer 开态「此外」消除且 22 引用保留, 五上游全绿, 7913 已释放

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 18:27:41 +08:00
jerryandClaude Fable 5 c4409bdbae fix(capabilities): S2 指代消解指令增强 + history 重写 + selfcheck 单进程化
- answer_composer: Dialogue Context 指令明确化(含指代词时必按历史确定指代对象)
- sdk/services/history.py: 重写为两段式(先组轮次对、再截断),修正轮次配对逻辑
- sdk/app/test_history.py: FakeDB 模拟 SQL streaming 过滤, 7 用例全绿
- tooling/cap/cap_selfcheck.py: 单进程内完成热加载证明(diff 才有意义),
  GENE_FAMILY_ROOT 显式注入子进程, manifest 改字符串拼接避开 format 花括号

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 14:42:12 +08:00
jerryandClaude Fable 5 8c103ea382 feat(capabilities): S1+S2 机制地基+多轮记忆(能力框架/热加载/MCP Provider/history 线程化)
- capabilities/{manifests,registry,providers,install_manager}.py + tool_runner.py:
  三层机制(注册层/调用层/安装管理层),四 Provider,热加载差分刷新
- configs/capabilities.yaml: 唯一注册入口(明文热加载面)
- api.py: QARequest+history/capabilities, /capabilities/install loopback 路由
- llm_client.py: complete() tools 透传 + complete_raw_messages() 工具调用循环支持
- pipeline.py/answer_composer.py: history 线程化(只进 Dialogue Context,检索零回归)
- sdk: services/history.py(3轮/16k预算) + routers/qa.py session_id 剥离注入
- compile_qa.sh: rsync 允许子目录 + capabilities.yaml 入 install 清单
- tooling/cap/: fake_mcp_server.py + cap_selfcheck.py 机制自检
- requirements.lock: mcp 2.1.1 + 依赖 12 包

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 13:00:35 +08:00
jerryandClaude Fable 5 4071b29520 Python 统一 U0-U4:venv py3.12.13 + 四树 cp312 重编译 + 端口互换 8091/8092/8093 + 旧服务停而不删
- U0:新建 plantai-rag-new-venv(3.12.13,130 包),torch 2.13.0+cpu/cython 3.2.8/faiss 1.14.3/openai 3.3.1,requirements.lock 固化
- U1:四树全 venv 重编译(sdk 15/qa 45/methodology 28/legacy 283 .so 全 cp312),audit 双审计过
- U2:备用端口影子对照:金标 search evidence 30/30 与生产一致、SDK pytest 125 过、五上游绿
- U3:统一树切终态 8091/8092/8093 + BFF 8090(venv),停旧服务(容器/进程不删,30 天窗)
- U4:minerupy311→minerupy312 断链修复、GF_PYTHON_ENV 回退统一、start-dev/run/bff_restart 去 conda、server.env/README 更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 12:23:37 +08:00
jerryandClaude Fable 5 4bfd86930a P4 补充:legacy-rag 编译瘦身(排除 v13-v15 系列,源码保留)
- compile.manifest:449 → 267 模块(编译面)
- compile.exclude-v13-v15:182 模块(v13/v14/v15/v15_3_1-4,生产 7 月批量
  提取管线的历史迭代,运行时不引用;源码全部原样保留在仓库)
- compile.manifest.full:449 全量存档(与生产 7900 容器同面,可对照)
- 保留集验证:v16_1_1/v16_1_2/methodology/顶层/api/scripts 均不引用被排除系列
  (唯一引用者 unified_converter.py 本身是死代码,未入保留集)
- 瘦身编译树:283 .so,audit 0 错,7914 冒烟 kg/stats 200(5.9s)
- 编译时长:463→283 模块,GCC 阶段约省一半

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 18:47:53 +08:00
jerryandClaude Fable 5 84d2511f62 P6/M7: compile_sdk.sh + build_all.sh 一键打包流水线
- compile_sdk.sh:SDK 编译硬化(15 .so;白名单 main/config/schemas——schemas 为
  pydantic v2 validator 被 Cython 转 cyfunction 触发 PydanticUserError,实测豁免)
- 编译树 SDK 冒烟:audit 0 错,8094 起真实 BFF 五上游全绿
- build_all.sh:编译 4 树 → 双审计 → import 冒烟 → (SKIP_KB=1 跳过 KB,
  定版后置 0)→ 组装安装目录 + start_all.sh → SHA256SUMS → 泄露门禁
- tooling.env:新工程路径与端口终态(8090 段)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 17:16:03 +08:00
jerryandClaude Fable 5 5024a12947 P5/M6: KB 加密工具验证完成 + 操作指南(定版后执行)
- 加密工具双模式往返验证通过(字段级 properties_json / 整文件 parquet)
- 取消真实加密执行:数据库未定版,中间副本已清理,kb.key 保留
- tooling/KB_ENCRYPT_GUIDE.md:完整操作步骤/踩坑记录/解密验证/流水线接入
- 踩坑固化:Qdrant 必须 snapshot API(禁 rsync 活动卷);Neo4j 5.15 community
  不支持在线 dump,走 frozen 目录冷拷;canonical 库不在 KB 交付内

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 17:10:02 +08:00
jerryandClaude Fable 5 38a3c438fd P5/M6: KB 加密构建工具(快照一致性 + AES-GCM 断言导出 + 单一 tar)
- kb_encrypt_backfill.py:JSONL 字段级 + 整文件两种 AES-256-GCM 模式
  (enc:v1:nonce:ct 格式,验证往返解密一致)
- encrypt_kb.sh:Qdrant snapshot API + neo4j-admin dump 在线一致导出
  (绝不动活动挂载卷),断言导出加密,单一 tar(不压缩)+ sha256 + 计数校验
- crypto/init_keys.sh:KB 主密钥生成(AES-256 base64,600,无供应商 RSA)
- manifest.yaml 按实测数据源更新(70G+8.2G+14G+9.5G+2.7G+17M)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:53:49 +08:00
jerryandClaude Fable 5 3cacab6f14 P4/M5: legacy-rag 编译硬化完成(463 .so + 3 白名单)
- compile_legacy.sh:按 compile.manifest(449)迁移+编译,含 compile.whitelist 明文保留机制
- 生产工具链同款 test4py311 + cython 3.2.4 验证
- 3 个白名单模块(redis_cache/v15_extractor/v15_3_1):主项目线源码 bug,
  编译失败硬阻断 → 登记理由保留明文(rag-develop 线已修,主项目线未修)
- audit:463 extensions,0 错误,树 sha 已 marker 锁定
- 编译树冒烟 7913:kg/stats 200(5.4s),与 7900 同面

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:20:00 +08:00
jerryandClaude Fable 5 9f5b38c203 P3/M4: methodology 编译树切换(BFF rag→8001,回滚窗口开启)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 13:53:47 +08:00
jerryandClaude Fable 5 b813cff005 P1/M2: tooling/compile/compile_qa.sh(参数化 + normalized_release 补丁)
- 收编工具链遗漏主项目 08-29 新增 src/rag/normalized_release.py(backend_guard 依赖)
- 编译树 45 模块全部 .so,audit 0 错误,7922 健康检查金标过
- 修复:compile 目录相对依赖 tools/(elf_visibility.py)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 13:26:18 +08:00
jerryandClaude Fable 5 27946edc2b P0/M1: 收编 encryption-test 工具链入 tooling/
- legacy_plantai_server_package/: phase_a–f + compile_* + bin/plantai_admin.py
  + tools/(audit/elf_visibility/smoke/build_delivery_manifest) 完整基线
- legacy_docker_packager/: protected 形态参考
- crypto/client/: plantai_core.py(AES-GCM 原语) + install_plantai.sh 参考
- secrets/provision 严格排除(gitignore),入 git 前已脱敏清理
- LEGACY_MAPPING.md 记录源与改造方向

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 12:59:29 +08:00
jerryandClaude Fable 5 0875bb036c P0/M1: 四部分重构——frontend→ui、backend→sdk 改名 + 引用修复 + 骨架
- git mv 保留历史:ui/(Vue3+Vite)、sdk/(BFF 中间层)
- 路径语义修正:db_path/figures_cache 改相对 sdk/(BFF cwd),
  历史库 sdk/backend/data 迁移至 sdk/data/(会话/图片缓存无损)
- 引用修复 ~15 处:config.py、deploy/*.sh、vitest/playwright 配置、
  单测导入路径、docs、README、gitignore、.env.example
- 骨架:agent/{qa,methodology,legacy-rag,vendor}、knowledge/manifest.yaml、
  tooling/{compile,kb,crypto,assemble,audit,tools,scripts} + README
- 门禁验证:sdk pytest 125 通过、ui vitest 158 通过、
  生产 BFF 脚本重启四上游全绿 + 静态托管 + 会话库无损

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 12:56:47 +08:00