214 Commits
Author SHA1 Message Date
adminandClaude Fable 5 dd0cd01e61 feat(bioflow): 16 个非内核环境镜像化(plantai-env-*:20260906) + playbook 回填
按 playbook 方法补做台账 9-25 号共 16 个环境镜像(工程收尾):
- 11 个 conda env + 4 个 biolabx(mamba/micromamba) + pymol-env(conda 环境)
- 豁免 3 个: AI_env(12K 空壳)/r_de(残壳)/miniconda3 base(conda 本体违红线)
- 新增坑位 17-21: conda-pack -n 需 PATH/pip 覆盖检测/dest-prefix 路线
  (无 python 环境)/pip shebang 源前缀/conda-unpack 残留
- build_envs.sh: 非内核镜像构建入口; extra-envs/: 16 个 Dockerfile
- 验证: 16/16 过 §6 清单+加强断言(无 conda-unpack/无源前缀 shebang)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 11:07:23 +08:00
adminandClaude Fable 5 06b4abf28b fix(bioflow): P7 文件引导闭环修复——上传/路径登记后自动续跑(retry_after_files,await_inputs 重推,非等待态 no-op)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 09:17:17 +08:00
adminandClaude Fable 5 0995dcbe77 docs(bioflow): playbook 补 §10 BIOFLOW_DATA 容器内软链断链陷阱(P7 终验实测)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 09:12:48 +08:00
adminandClaude Fable 5 4f2c3ed986 docs(bioflow): 手工测试方法手册——14 节覆盖七项引导+面板+三形态+金标+端到端主线
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 08:58:17 +08:00
adminandClaude Fable 5 a38e7707dd fix(bioflow): P7 部署加固——restart.sh source .env(llm.py 裸读 DOCGEN_LLM_* 环境变量先例同 bff_restart)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 08:50:00 +08:00
adminandClaude Fable 5 36c205c620 test(bioflow): T2 R2 复测轮——5 缺陷修复确认全过、缺陷清零(后端 170+前端 373 全绿、金标复跑全等、红线空)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 08:41:00 +08:00
adminandClaude Fable 5 d3110c4319 fix(bioflow): R1 缺陷修复——反代 aread 时序(uvloop 大响应体 502)/flow_store 启动接线(ask 引用块)/events snapshot dict 保真
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 08:36:08 +08:00
adminandClaude Fable 5 a3142d2a05 test(bioflow): T2 R1 轮次报告+TL 用例修订——catalog 口径与权威数据一致(75/21)、INTENT-044 交互式补充转 P7
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 08:18:20 +08:00
adminandClaude Fable 5 35bf6889a4 fix(bioflow): 部署期 P1 双缺陷修复——context 值导入脱钩 init_context 重绑定(路由层动态取模块全局)+BFF 反代非 SSE 透传 bytes 500(改纯透传 Response)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 07:22:01 +08:00
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
adminandClaude Fable 5 3cf44b4a61 fix(bioflow): 部署加固——生信服务 SSE 路由入编译白名单(断流崩溃根治同款)+bff_restart 杀进程按端口精确(防误杀 8098)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 06:54:45 +08:00
adminandClaude Fable 5 485e844160 feat(bioflow): P2-P5 前端编排闭环——五卡片+两面板+意图分流+探活显隐(373 用例全绿,红线零改动)+P3 docgen 增量合入(bioflow_report 模板+fig:// 渲染,预览与 PDF 导出同源)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 06:43:25 +08:00
adminandClaude Fable 5 b0c802095c feat(bioflow): P1 生信服务地基——bioflow_service 8098 独立部署树(12 服务模块+3 路由层+SQLite 三表+166 用例全绿)+BFF 流式反代/报告登记(BIOFLOW_ENABLED 开关默认关)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 05:36:10 +08:00
adminandClaude Fable 5 03b11dedda chore(bioflow): 删除副本中 13 个 dev 历史备份文件(.bak/.orig)——副本全树零硬编码
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 03:00:09 +08:00
adminandClaude Fable 5 99e774a2a0 feat(bioflow): P0 内核移植与 8 环境镜像——副本 100 处适配零硬编码/8 镜像验证清单全过/金标 24 ID diff 空/TL 复查 4 项修正(gfpy 储备裁决+镜像备份排除+冒烟零硬编码+金标固化)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-06 02:59:26 +08:00
adminandClaude Fable 5 486670b75d docs(bioflow): 镜像构建方法 playbook(8 环境→8 镜像,其余 18 环境工程后补做) + A1 任务书 v2 + 团队上下文 8 镜像终态
- playbook: conda-pack 打包→/opt/conda 解包+conda-unpack 重定位→ENV PATH 直达→镜像内编译 .so;验证清单/常见坑/26 环境总台账/实测记录表
- A1 任务书 v2: 副本 126 处适配逐条记录、入口→环境归属表、跨环境入口处置、金标 24 ID diff 全等
- team_context: 8 镜像终态(含 panfamily 1.8G→bioflow-pan、r_de_analysis 1.6G→bioflow-rde)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 20:45:03 +08:00
adminandClaude Fable 5 644ac2fb40 docs(bioflow): A2 任务书追加 FlowStore 对接契约;契约文档计数 59→60(dev 新增 wgs_impute 契约)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 17:49:02 +08:00
adminandClaude Fable 5 adb97f49a8 feat(bioflow): P6 流程知识库——flow_docs 集合(FlowStore 幂等入库+混合检索) + 三语料切块入库脚本 + 50 条评估集(94% 通过)
语料 106 文件/724 块(全流程 79 章 118 + 契约 60 份 429 + 技能 45 份 177);QA 树与 vstore 既有集合零改动

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 17:48:41 +08:00
adminandClaude Fable 5 9c0da9bc6a docs(bioflow): A4 语料副本入库 + A1/A4 任务书勘误(docker build 自测权限、语料源路径)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 16:44:18 +08:00
adminandClaude Fable 5 4f5d0d607b test(bioflow): 阶段0-T1 测试用例——749 条 TC-BIO + FR-BIO 双向追溯矩阵 + UI 动作矩阵 + 意图分流词典
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 16:44:01 +08:00
adminandClaude Fable 5 64bc30365c docs(bioflow): 阶段0-PM 文档——PRD 新增 FR-BIO-032、UI_SPEC 生信组件规格、TEST_PLAN 生信分层与600门禁、团队上下文与六份任务书
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 16:09:48 +08:00
jerryandClaude Fable 5 4749f77544 fix(docgen): 两批手工测试修复——上传/预览/检索 + 护栏/导出/命名/编辑还原/二次预览
第一批:上传去限制+进度展示、模板HTML预览+按需导出、检索TAB实时更新
第二批:edit护栏移除、导出按钮纯化+file_name落库、编辑失焦还原、
       二次预览白底根治(防竞态+渲染兜底)
模板体系:7套公文模板(templates/)+templating渲染器、websearch联网

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 15:49:54 +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 5888e1d5c1 test(docgen): 测试治理资产——131 条验收用例 + 三轮留痕 + E2E/回归套件
- tests/docgen/:DC-UNIT/API/CONF/E2E/UI/REGRESSION/PERF 分组用例与可复跑脚本,报告逐条留痕(R1-R3 全记录)
- 意图 30 条前后端同表双跑(pytest + node)
- Playwright headless:docgen-ui/docgen-regression spec + b3 benchpanel 第 5 TAB 断言更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 21:13:47 +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 aab24d2f85 feat(capabilities): 面板开关唯一入口——env 总闸改熔断语义(默认放行)
- QA pipeline/answer_composer/agentic_controller: env 检查从 =1 改 ==0
  (默认放行;运维显式设 0 才禁用)
- SDK qa.py: capabilities(web_search/superpowers) 注入上游,面板开关直达 QA
- answer_composer: superpowers 改会话开关门控(capabilities.superpowers)
- UI: 去掉 gated_by 提示(开关即生效,不再误导)
- env: QA_V1_ENABLE_WEB_SEARCH/SUPERPOWERS 默认 1(熔断位)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 23:29:51 +08:00
jerryandClaude Fable 5 fbb6b43646 feat(ui): 设置改中央模态框(主窗口高斯模糊背景)
- SettingsPanel: Drawer 形态改为 Teleport 中央模态(420px 圆角卡片,
  backdrop-filter blur(10px) 遮罩, 弹入/淡出过渡, Esc/点击遮罩关闭, 焦点圈定)
- AppShell: 去掉设置 Drawer 包裹, 组件自持模态层

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:48:05 +08:00
jerryandClaude Fable 5 5cb15b0fac fix(ui): 设置面板打开时拉取清单 + Superpowers 进开关行
- SettingsPanel: onMounted 改 watch(open)——抽屉打开才 load(此前抽屉未开时
  load 早已跑完,清单为空,四开关行也不渲染,「暂无插件」误导)
- visibleCaps 扩为四项(memory/web_search/humanize/superpowers)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:31:51 +08:00
jerryandClaude Fable 5 60a81083c7 fix(ui): 设置抽屉移出 drawersMode 模板——桌面档点齿轮无反应的根因
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:27:48 +08:00
jerryandClaude Fable 5 fac6b38998 fix(ui): 展开态横排图标居中
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:24:31 +08:00
jerryandClaude Fable 5 c8d09d0016 fix(ui): 展开态图标轨横向排布居底(折叠态保持纵向居中)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:21:51 +08:00
jerryandClaude Fable 5 c402407a1c fix(ui): 左栏图标轨展开/折叠同元素沉底 + 折叠箭头移右边线垂直居中
- SessionRail: 图标轨恒显(展开态靠左 14px 边距,折叠态居中),margin-top:auto 沉底
  ——展开/折叠切换时图标 Y 位置一致
- SessionPanel: 移除 S4 文字「设置」按钮(图标轨已覆盖展开态入口)
- base.css: side-handle-btn 从左下角移到左栏右边线垂直居中(展开 left:260px,
  折叠 left:64px,过渡动画),图标方向由 AppShell 状态切换(收起→右/展开→左)
- inner flex:1 明确高度链,图标轨在内容滚动时始终可见

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 21:58:55 +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 cd7e98e7c7 feat(capabilities): S4 SDK+UI 能力端点+Humanizer+设置面板(含 S3 发布修复)
- sdk/services/capabilities.py: MANIFEST+DEFAULTS+sanitize+QA 注册表合并
- sdk/services/humanizer.py: 9 类中文 AI 痕迹规则(块级保护引用/表格/代码/图片)
- sdk/routers/capabilities.py: GET /api/capabilities + POST install 透传
- sdk/schemas.py+sessions.py: SessionMeta.capabilities + PATCH meta 白名单 merge
- sdk/routers/qa.py: humanize 会话开关注入 SSE;chat.js: body 加 session_id
- sse_relay.py: humanize_enabled 参数链(修 _pump_events 可见性编译错误)
- api.py(QA): /capabilities/registry loopback(BFF 合并)
- ui: settings store+SettingsPanel+AppShell 接线+SessionPanel 展开态设置入口+labels
- 测试: humanizer 8 用例+capabilities_svc 6 用例;SDK 146 全绿;UI vitest 172 全绿

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 16:50:54 +08:00
jerryandClaude Fable 5 dd54aa0e5d feat(web-search): S3 联网搜索(机制实例 1)+ 金标判定器防抖
- web_search.py: WebSearchCompleter(PubMed esearch+esummary 8s/重试1, Crossref 兜底 6s)
  + build_query 中文→英文查询构建(物种映射表+基因家族正则, 修 \b CJK 边界缺陷)
- pipeline.py: 证据采纳后 _maybe_web_search 确定性门控(请求开关 AND env 总闸 AND
  去重公开引用数 < min_evidence; 修 selected 恒 30 无信号缺陷)
- answer_composer.py: web_results 段 + SYSTEM Web 引用规则
- config.py: enable_web_search/max_results(4)/timeout(8)/max_chars(1200)
- sse_relay.py: STAGE 映射 +web_search_started/completed(11→13)
- capabilities.yaml: web_search manifest(http provider)
- env: QA_V1_ENABLE_WEB_SEARCH=0 等 4 键(example+真实)
- run_golden.py: LLM 方差防抖(FAIL 复跑一次,两次都 FAIL 才算回归;
  GI-005 实测三次采样 key_hit 0.6/0.8/0.4 横跨阈值)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 15:44:31 +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 f30e2a9102 feat(chat): 连续两张图片即并排,取消同比例限制
- 实测发现同论文连续图(g001/g002)比例差异达 4.5%/62.5%,比例门禁把真实连续对全部拆散
- 布局改为纯 DOM 结构:连续相邻即配对包 figure-row,奇数最后一张落单
- 移除图片尺寸读取与 load 等待,布局时机简化为 mounted/updated
- 测试更新:任意连续两张并排、3 张=1对+1单、空 p 兼容、隐藏失败图跳过

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 18:27:55 +08:00
jerryandClaude Fable 5 bf136304d7 feat(chat): 图片 50% 宽布局 + 连续同比例双图并排
- 新增 figureLayout.js:sameAspect(容差2%)/pairFigures(贪心配对)/layoutTextRoot(幂等)
- AssistantMessage:图片 load 后读 naturalWidth/Height 重排,单图 half 类,双图包 figure-row
- 相邻判定兼容 HTML 解析器把 figure 提出 p 后留下的空 p
- CSS 修 :deep()(原 scoped 规则从未命中 v-html),单图 50%、row 内各 calc(50% - 7px) + 14px 间距
- 新测试 16 例,全量前端 174 例全绿

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 17:47:37 +08:00
jerryandClaude Fable 5 f81971b176 docs: README 按最新状态更新(终态拓扑 8090-8093、统一 venv、一键打包、实际库计数)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 14:28:10 +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 a990a00eb5 端口终态修订:BFF 8090 / QA 8091 / Methodology 8092 / legacy 8093
- config.py 默认值改终态(浸泡期 .env 覆盖 7921/8001/7911 继续生效)
- extraction _DEFAULT_ALT=8093;三个 start.sh 默认端口改终态
- 运行中服务零触碰:浸泡端口不变,BFF 未重启,旧服务不动
- 验证:sdk pytest 125 绿,BFF 五上游仍绿(env 覆盖优先)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:41:37 +08:00
jerryandClaude Fable 5 3048c18437 P4/M5 收尾:extraction 回退链 7900→7911 + methodology_routes env 化
- extraction.py 回落 _DEFAULT_ALT=7911(agent/legacy-rag 编译树,替代退役 7900)
- legacy 侧 methodology_routes 同款 env 化补丁(UPLOAD_JOBS_DIR 可配)
- 单模块重编译 + 树审计双绿(463 .so, marker 重写)
- 决定性验证:停 8001 → extraction 经 7911 正常返回 → 恢复 8001

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:02:22 +08:00
jerryandClaude Fable 5 30b01b8ae1 P4/M5: SDK legacy 健康键 + 代理路由,五上游全绿
- config.py rag_legacy_base_url=7910(默认)/ upstream.py legacy 键入 probe_all
- routers/legacy.py:13 族前缀白名单透明代理(线程池阻塞调用)
- 浸泡:sdk/.env RAG_LEGACY_BASE_URL=7911(agent/legacy-rag 编译树)
- 验证:经 BFF 代理 kg/stats+kg/families 200,非白名单 404

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:58:47 +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 2f82c4a8dc P4/M5: agent/legacy-rag 源码迁移(449 模块 191K 行)+ 影子 7911/7912 冒烟
- 按生产 7900 容器黄金清单迁移(compile.manifest 449 条目,0 缺失)
- 入口双态:api.app(生产同源 3 路由)/ api.main(裁剪 11 路由族 91 路径)
- 修复:advanced/__init__ 空文件(包标记误覆盖,已从主项目恢复)
- 修复:api/rag_routes.py 跨环境 site-packages 注入改 LEGACY_GF_SITE_PACKAGES 门控
- 修复:scripts/utils 缺失(动态加载 reasoning_engine)
- 影子验证:kg/stats 数据连通(6.2s,与 7900 同源 normalized 后端)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 14:20:41 +08:00