181 Commits
Author SHA1 Message Date
adminandClaude Fable 5 e151f675f1 feat(qa-db): QA数据库裸进程标准(deploy/qa-db五脚本+守卫去版本锁定+打包/文档/Excel同步)
- deploy/qa-db/: qdrant/neo4j systemd 裸进程安装脚本+unit模板+整库替换(replace_db.sh)
  * 数据双制品模型: <部署根>/qa-db 与 install 分开传输, 支持频繁整库替换
  * 免编译(官方静态二进制/tarball)+本地 bin/ 离线分发+国内镜像回退
  * 端口 27433/27434+19888/19885(127.0.0.1), 175 docker 容器(27333/19788)为其他项目共享不动
- backend_guard.py: 移除精确计数相等校验(数据库会整库替换/持续更新, 不得锁死版本)
  保留身份校验(release/collection/kb_version/标签/关系类型), 计数仅随 health 返回
- qa/scripts/start.sh: reranker 模型路径回退(install/models/bge-reranker-base)
- build_all.sh: qa-db 脚本+reranker 模型入包; .gitignore: qa-db/bin 离线载体
- DEPLOY_FLOW.md: §0/§5.0/§5.0b/§6.0b/§7 QA 数据库裸进程标准

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 17:59:53 +08:00
adminandClaude Fable 5 acf5b734fa feat(deploy): nginx 80 端口代理章节+模板+BFF 改绑 127.0.0.1(仅新增修改,未真实部署)
- deploy/nginx/plantai.conf(新): 80 反代 127.0.0.1:8090 模板,SSE 长连接
  (buffering off/read_timeout 3600s>看门狗 1200s)+大文件上传
  (client_max_body_size 0/request_buffering off/send_timeout 600s)适配
- 绑定脚本: bff_restart.sh/sdk/run.sh/start-dev.sh 默认 0.0.0.0→127.0.0.1
  (nginx 80 为唯一客户入口);build_all.sh start_all heredoc 同改+nginx
  模板入包 install/nginx/
- DEPLOY_FLOW.md: §0 绑定策略更新+nginx 模板位置;新增 §5b 从零安装
  nginx(apt/yum 探测→放模板→nginx -t→启用→防火墙→先 nginx 后改绑的
  切换顺序→内网验证);§6 质检增 nginx 专项(进程/80 监听/经 80 首页+SSE
  冒烟+上传冒烟);§7 注明现网仍是 0.0.0.0:8090 直连形态待按 §5b 迁移

纪律: 仅新增与修改,未在目标机/现网执行任何 nginx 安装或改绑操作。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 15:15:21 +08:00
adminandClaude Fable 5 105b9c8427 docs: 编译→打包→部署→质检全流程手册(agent 自动执行版)
覆盖: 五树编译+import 冒烟 / KB 加密(SKIP_KB 门禁) / build_all 一键打包
+泄露门禁 / 发布包组装(QA prompts 补齐+镜像导出+传输) / 目标机部署
(venv+.env+KB 密钥+Ollama+start_all) / 部署后质检(端口绑定/健康/无明文
代码核验/数据库加密核验/私有问答冒烟/回归)。硬要求:目标机无白名单外
明文代码。已知限制:SKIP_KB=1 未定版、KB 解密密钥运行时消费方未实现
(报 TL 裁决)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 01:27:23 +08:00
adminandClaude Fable 5 7b63765d69 chore(deploy): vstore 编译硬化纳入打包流水线——目标机不再出现向量库明文代码
- tooling/compile/compile_vstore.sh(新): 复制 compile_sdk.sh 改白名单
  (api.py 入口明文+__init__.py,其余 12 模块 Cython .so+strip+elf 校验)
- build_all.sh: 编译段追加 vstore 编译(SDK_PYTHON);冒烟段追加 import 检查;
  组装段改复制编译产物(此前复制明文源码)
- 实测: 编译 12 .so 成功;冒烟 health+search-chunks 正常;bash -n 过

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 01:25:44 +08:00
adminandClaude Fable 5 dbe2037116 chore(deploy): 向量化本地模型(Ollama+bge-m3)纳入部署脚本
- deploy/ollama_restart.sh(新): Ollama 幂等拉起+嵌入模型校验,二进制多候选
  探测(零硬编码),模型缺失只告警不阻断;start_all.sh 在四服务前先拉起
- vstore/vstore_restart.sh(新): 部署树与安装包共用版(路径从脚本位置推导,
  零硬编码),替换部署树旧硬编码脚本(实测重启后 210 文档+210 chunks 完整)
- build_all.sh: 组装段纳入 vstore 明文源码+启动脚本+env 模板;start_all.sh
  heredoc 增加 Ollama 拉起段——安装包自此包含向量化环节

实测: ollama_restart.sh 幂等(已运行跳过,bge-m3 就绪);vstore 新脚本重启
UP(210/210);bash -n 全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 00:46:31 +08:00
adminandClaude Fable 5 5931ddca5e test(priv): R3 轮次报告——BUG-PRIV-R2-01 关闭,缺陷清零;用例表 v1.3(LLM 收到问题与参考资料)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 00:19:38 +08:00
adminandClaude Fable 5 92e2754583 fix(priv): R2 严重缺陷——ask_private 的 LLM 调用拼入用户问题(原实现只传检索上下文致真命中被自谦改判误杀)
user 消息改为「用户问题:{question}\n\n参考资料:\n{context}」;
SYSTEM_PROMPT 与 [资料n] 编号顺序不变。自测:真命中 hit:true(引
[资料1] 回答序号 38)/无关查询仍改判 hit:false/空检索不调 LLM/sdk
225 passed 无新增失败。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 23:40:55 +08:00
adminandClaude Fable 5 b68ebe6445 test(priv): R2 轮次报告——R1 三缺陷关闭,发现严重缺陷 BUG-PRIV-R2-01(LLM 未收到 question 致真命中被自谦改判误杀)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 23:38:52 +08:00
adminandClaude Fable 5 04c08e8339 fix(priv): R1 缺陷修复——信封包 ok 键 + 空 question 422 + 自谦答语确定性改判 hit:false
- private_docs.py: 命中/未命中两态响应包 ok:true(错误信封 ok:false 不变)
- schemas.py: PrivateQARequest.question 加 min_length=1
- privateqa.py: LLM 自谦答语(资料中未找到相关信息+等价变体)确定性改判
  {hit:false,mode:empty},不调默认阈值(底噪 0.3-0.37 与真实命中 0.42-0.73
  有重叠)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 23:07:19 +08:00
adminandClaude Fable 5 19e928ba93 test(priv): R1 轮次报告——101+225+396 全绿,3 个一般级缺陷(信封缺 ok/空 question 未 422/底噪越线),38 errors 确证预存基线
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 23:03:19 +08:00
adminandClaude Fable 5 6bf11821c1 test(priv): T1 骨架修正——L1-01 笔误 + 7 处执行期缺陷(vi.mock TDZ/恒真断言/vault 夹具路径隔离/mock 边界对齐 A1 真实实现)
自证: vstore pytest 27 passed; vitest 23 passed; 追溯矩阵 92=92 无孤儿。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 22:41:36 +08:00
adminandClaude Fable 5 e783a26be6 feat(priv): A1 实现私有资料问答 P1-P3——vstore chunk 索引 + BFF 私有问答端点 + 前端并行块与管理界面
- P1 vstore: chunks.py 切块(600字/8段/重叠1/上限200,表格原位聚合,outline
  不参与)+ChunkIndex 三文件原子写+无降级档;embed_batch_chunked 批量16x并发4;
  vault add/delete/rebuild_chunks 钩子(chunk 失败不阻断 doc 级);search-chunks/
  rebuild-chunks 端点+health chunk_count;rebuild CLI
- P2 BFF: privateqa.ask_private(同doc≤3去重/12k截断/40s超时/带引用短答);
  POST /api/qa/private 三态;schemas PrivateDocBlock 入 union;client.search_chunks;
  llm timeout 参数;main.py 注册
- P3 前端: _firePrivate 并行检索+竞态防护(pending/flush/防重入/跨轮归属);
  AssistantMessage private_doc 块;i18n/private.js;PrivateLibraryPane 挂 DocPane
  空态;removeLibrary(204 兜底)

自测: vstore pytest 26/27(1 失败为 T1 骨架笔误待修)+74 回归;前端 vitest
373/373;npm run build 0 error;sdk 222 passed(3 failed 为基线预存);红线 diff 空。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 22:22:22 +08:00
adminandClaude Fable 5 9e5367b268 test(priv): T1 用例基线 92 条——100% 覆盖 FR-PRIV 调整内容 + 双向追溯矩阵 + 测试骨架
TL 复查达标放行:92 defined = 92 used、unmatched 0、unreferenced 0;
假设 1/9 已按实施方案 §1.2/§3.2 裁决修订(表格原位聚合/outline 不参与
切块/跨轮归属行为级判据)。骨架:test_chunks.py 416 行 + vitest 4 文件。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 21:42:22 +08:00
adminandClaude Fable 5 dea46402e8 docs(priv): 阶段0 私有资料问答文档先行——PRD §17 FR-PRIV-001~008 + UI_SPEC §9 + 原始测试计划 + 团队上下文 + A1/T1 任务书
用户需求:客户上传 PDF 等资料进行向量化并追加进向量库,且问答可检索。
决策:全局检索融合 / BFF 直连 DeepSeek 生成私有回答 / 两路并行展示(命中才显示) /
「我的资料」管理界面挂文档 TAB 空态。改动仅限本分支,QA 金标树与红线零改动。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 21:20:35 +08:00
adminandClaude Fable 5 759427b759 chore(deploy): 启动脚本绑定策略统一——8090 默认 0.0.0.0,其余服务默认 127.0.0.1
用户规则:提供客户 UI 的服务(BFF 8090)默认绑 0.0.0.0 面向内网客户
访问;其余内部服务(QA/methodology/legacy/vstore/bioflow)默认绑
127.0.0.1 不对外暴露。

- deploy/bff_restart.sh: BIND 默认 127.0.0.1 → 0.0.0.0(注释同步)
- sdk/run.sh: --host 127.0.0.1 → 0.0.0.0(注释同步)
- deploy/start-dev.sh: BFF 行 127.0.0.1 → 0.0.0.0
- bioflow_service/restart.sh: BIOFLOW_BIND_HOST 默认 0.0.0.0 → 127.0.0.1
- agent/methodology/scripts/start.sh: METHODOLOGY_API_HOST 默认
  0.0.0.0 → 127.0.0.1(部署树副本同改)

实测:8090→0.0.0.0、8091/8092/8093/8094/8098/8099→127.0.0.1,
BFF 上游全 OK,8092/8098 已按新默认值重启,残留 methodology 旧
进程已清理。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 18:55:42 +08:00
adminandClaude Fable 5 5457579d02 fix(bioflow): BFF Block union 补 7 种生信块类型,修复骨架消息持久化 422
前端 sendBioflow 的骨架消息(kind=bioflow,blocks 含 bioflow_path 等
生信块)POST 到 BFF 会话持久化时,Block union 无生信块类型 → 422
VALIDATION,会话历史不落库(前端有 catch 不阻断显示)。

- schemas.py 新增 BioflowPathBlock/BioflowProgressBlock/BioflowFormBlock/
  BioflowFileBlock/BioflowArchiveBlock/BioflowQaBlock/BioflowReuseBlock
  (判别字面量+全默认值+extra=allow 宽松接收——字段契约归前端 store
  与 bioflow 服务 SSE,BFF 只做持久化校验)
- 部署:deploy-unified/sdk/app/schemas.py 已同步,8090 重启(0.0.0.0
  绑定保持内网可访问)
- 验证:curl 骨架消息 422→201,7 种块写入/GET 详情/PATCH 检查点/读回
  全通;浏览器端到端(真实生产 BFF)无 4xx、路径卡正常、刷新后会话
  历史恢复保留生信消息与块

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 18:43:01 +08:00
adminandClaude Fable 5 bd011650f6 fix(bioflow): 意图分流收窄 v1.1——仅明确分析指令进生信流,问答句一律 qa
用户反馈:不是所有对话都走生信编排,只有「用xxx进行分析」「帮我分析xxx」
类明确指令才是生信流程;「水稻SPL基因家族的最新研究进展有哪些?」
等问答句必须走原正常问答流程。

- intent.py/intent.js 同表双跑:任务动词+对象 / 前缀分析句式 / 分析链句式
  三通道;新增疑问引导词+问答主题词两道拦截;「研究」移出任务动词
  (「帮我研究一下水稻SPL家族」经前缀通道仍保 bioflow)
- cases_bioflow_intent.md 升 v1.1:40+15 用例,新增 #41-#55 问答句收窄
- test_intent.py 补 v1.1 用例,50 条全绿;PRD FR-BIO-001 同步收窄
- 部署:8098 已重启,ui/dist 重建同步 deploy-unified,浏览器端到端验证 PASS
  (问答句走 /api/qa/chat/stream,分析指令走 /api/bioflow/chat/stream 出路径卡)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 18:13:52 +08:00
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