admin
d9abd0b86a
feat(auth): 用户端鉴权(登录/授权清单/逐次校验/功能门禁 + owner 数据隔离)
2026-10-16 14:42:23 +08:00
admin
282415fcb1
feat(admin): 行为日志记录 hub_id(便于区分不同中枢)
2026-10-15 23:56:42 +08:00
admin
1ca2241a97
feat(admin): 增加中枢设置(自定义 ID 与名称,右上角设置入口)
2026-10-15 23:52:17 +08:00
admin
c78df3a6a6
feat(admin): 新增管理后台(登录/用户管理/日志查看) + 行为日志文件采集(请求中间件 + log_event)
2026-10-15 18:43:19 +08:00
admin
ac07cb2008
Merge pull request 'feat(review): AI 预审稿修复 + 审稿回复助手 Phase 1' ( #3 ) from wjq/PlantAI-rag-new:feature/presubmit-explainable-engine into main
...
Reviewed-on: http://192.168.0.175:3000/admin/PlantAI-rag-new/pulls/3
2026-10-13 09:34:41 +08:00
potaser
d077a5b930
test(docs): rebuttal + tracker tests + PR reports
2026-10-12 16:38:28 +08:00
potaser
c4dc344a31
feat(edu): presubmit UI + rebuttal assistant + tracker removal
...
- PresubmitPanel: rationale / conflict chips / file persistence
- RebuttalPanel: Phase 1 UI (3-column, 5-type form, stance pre-check)
- ReformatPanel / ReportPanel: hide internal fields (job id / version)
- EduSideNav: SVG icon, remove tracker menu item
- EduWorkspace: unmount tracker
- edu.js: rebuttal state + presubmitFile + SECTIONS (drop tracker)
2026-10-12 16:38:28 +08:00
potaser
cf5ccb3a37
feat(review): presubmit 4-bug fix + rebuttal Phase 1 backend
...
- 4 bugs: truncation window / keyword scanner / tier heuristic / vocab
- Scanner conflict demotion now truly affects recommendation (major → minor)
- Rebuttal Phase 1: store / parse / draft / 10 endpoints
- max_text_chars 150K + token guard + 400/413 retry
- Journals tier override (13 journals) + jif heuristic (exclude reviews)
2026-10-12 16:38:28 +08:00
potaser
d99d5ef74a
fix(review): replace presubmit recommendation quota with explainable rule engine
...
- Remove '3-8 major' quota that made accept/minor_revision unreachable
- Add recommend_engine.py: rule-based R0-R5 + tier-parameterized judgment
- Journal tier (1/2/3) from journals.json review_tier field
- LLM no longer outputs recommendation; engine is single source of truth
- Rationale exposed in API and rendered in PresubmitPanel
- Weak draft still major_revision (R1); strong draft now minor_revision (R5)
2026-10-12 09:55:07 +08:00
admin
4add9f176b
Merge pull request 'feat(review): journal_directory 启动自动 seed(部署即运行)' ( #2 ) from wjq/PlantAI-rag-new:feature/journal-seed-autoload into main
...
Reviewed-on: http://8.163.92.8:3000/admin/PlantAI-rag-new/pulls/2
2026-10-11 21:12:56 +08:00
potaser
1319328b85
feat(review): auto-seed journal_directory on startup when empty
2026-10-11 20:55:36 +08:00
admin
2d0e3a4858
fix(build): compile_sdk 白名单加入 review_proxy.py(科研审稿反代断流高危点)
2026-10-11 16:40:24 +08:00
admin
ea0f2b3fad
Merge pull request 'feat(review): 教育科研工作台 + 论文自动重排版 + journals v4 数据集' ( #1 ) from wjq/PlantAI-rag-new:feature/academic-review-assistant into main
...
Reviewed-on: http://8.163.92.8:3000/admin/PlantAI-rag-new/pulls/1
Reviewed-by: admin <jerryhaozhang@gmail.com >
2026-10-11 13:49:12 +08:00
admin
19fa12eb39
merge main: 解决 .gitignore 冲突(合并部署文档忽略规则)
2026-10-11 13:47:47 +08:00
admin
11337a788f
更新 .gitignore
...
解决冲突
Signed-off-by: admin <jerryhaozhang@gmail.com >
2026-10-11 13:29:35 +08:00
potaser
55410b663a
feat(review): journal format-rule fetch scripts (offline CLI)
...
- fetch_format_rules.py CLI: robots.txt-aware fetcher (httpx + bs4,
>=2s per-host throttle) + DeepSeek quote-backed rule extractor
- Status: OUP/Wiley/Cell return 403 from this environment; the five
featured journals' format_rules in journals.json were manually
verified against official sites instead. Tooling kept for future
re-runs; data/format_cache/ is runtime output and gitignored
- Service code never imports this toolchain (standalone CLI only)
2026-10-11 12:19:18 +08:00
potaser
dddb70ff6f
fix(review): directory partition source shown as constant note
...
Stop sending partition_source_url; respond with a fixed explanatory
note instead. DB values untouched (dropped after SELECT).
2026-10-11 12:19:18 +08:00
potaser
649e66f41d
feat(review): tectonic PDF compile API (P3a) + rename journals panel
...
- POST/GET /api/review/compile[/{id}[/pdf|/log]]: isolated workdir,
--untrusted, 60s timeout with process-group kill, single-slot queue
(429 QUEUE_FULL), 7-day retention sweep
- tools/install_tectonic.sh: pinned tectonic 0.17.0 (sha256) + README
- Rename menu/panel title to 学术期刊情报
- Compile UI stays a placeholder per product decision (P3 deferred)
2026-10-11 12:19:18 +08:00
potaser
42aeb8fa4c
feat(review): paper auto-reformat P1 (.tex rule engine + diff panel)
...
- Rule engine: font/margin/line-spacing/bib-style transformers,
tighten-only + structural guard + idempotency
- POST/GET /api/review/reformat with 200-envelope errors and job store
- ReformatPanel: journal dropdown (featured + directory search),
source/diff tabs; compile tab is a dev placeholder for now
- journals.json format_rules_default kept as generic fallback
2026-10-11 12:19:17 +08:00
potaser
c747ebd77a
feat(review): official format rules for 5 featured journals
...
- Replace featured list with accessible journals: Genome Biology,
BMC Plant Biology, Molecular Plant, Frontiers in Plant Science, Rice
- Per-journal format_rules verified against official author guidelines
(rules_source=official, source_url, last_verified=2026-10-10)
- Update recommend tests to the new seed set
2026-10-11 12:19:17 +08:00
admin
60375b04d7
chore: .gitignore 忽略含凭据的部署方案文档 DEPLOY_PAPER_176.md
2026-10-10 18:53:25 +08:00
admin
1bd4aea5fd
fix(build): render_active_library_env 输出 GENE_FAMILY_ROOT 而非未定义的 QA_ROOT
...
active_library.env 里 $QA_ROOT 从未定义,QA start.sh 在 set -u 下 source 时报
unbound variable 导致 8091 起不来。改用 prod.env 中已定义的 GENE_FAMILY_ROOT。
2026-10-10 18:52:15 +08:00
admin
51532a30bc
fix(ui): 工作台「提取任务」tab 与离线提示改为「上传文献」
2026-10-10 18:27:06 +08:00
potaser
5a71e29cf7
feat(edu): complete 7-panel academic assistant + journals v4 dataset
...
Backend:
- review_service: presubmit / recommend / journals / journals/directory /
format-check / conferences endpoints
- journals.json 5 精选种子 + journal_directory 1056 条全量(v4 数据)
- v4 数据集:2025 JIF(2026 JCR 发布)+ 2025 中科院分区 + 1053 条官网 URL
- format_check 行距 bug 修复(基线 y + 物理过滤 + docx EMU)
BFF:
- review_proxy 反代(修复 httpx build_request await bug)
- REVIEW_ENABLED 开关(默认关闭,零痕部署)
Frontend:
- 教育科研工作台(7 面板 + 菜单 + 状态管理)
- TopBar 教育科研入口(v-show 覆盖层语义,RAG 会话不丢)
- 期刊情报:Tab 切换 / 搜索 / 筛选 / 分页 / 官网列 / 展开凭证
- 智能推荐 / AI预审稿 / 专业报告 / 投稿台账 / 排版规范 / 会议日历
2026-10-10 16:05:08 +08:00
potaser
d43d30ee3f
feat: add review_service with plant genomics presubmit, journals endpoint, and BFF proxy
2026-10-09 16:54:03 +08:00
admin
d37e0d9c3a
fix(paper): 确认大纲后即时 seed 进度卡并逐节刷新
...
- 后端写稿循环不再落空 paper_progress 块(重载后出现空卡),改落开始撰写文本
- 前端 confirmPaper 时用大纲节标题本地 seed 进度卡,2s 轮询 patch 逐节状态
- 当前节按 current_section_id 标 writing(…动画)
2026-10-08 17:10:50 +08:00
admin
c923419d2d
fix(paper): 大纲阶段修改意见路由回 sendPaper + 用原始 brief 重新生成大纲
2026-10-08 16:23:28 +08:00
admin
43a7c6c132
feat(paper): UI 优化(卡片文字颜色/去模式按钮) + 模板下拉加论文选项并接线渲染
2026-10-08 15:17:44 +08:00
admin
8b228923bd
fix(paper): 取消路径(cancel_paper) + 引用元数据清洗(丢弃杜撰 DOI/PMID)
2026-10-08 14:59:16 +08:00
admin
2e5372cf90
fix(paper): 论文产物渲染为 HTML + 文末追加参考文献列表/disclaimer
2026-10-08 14:54:00 +08:00
admin
91f6a1c242
feat: 新增论文撰写功能 paper-writer(独立 MCP 服务 + BFF 大脑 + 前端三卡)
...
- paper_writer_service(8097):FastAPI + MCP streamable-http 单端点,9 工具
(propose_paper_outline/write_paper_section/get_paper_progress/search_refs/
revise_paper_section/revise_paper/get_paper/complete_paper/cancel_paper),
SQLite 三表(papers/paper_sections/citations,WAL),GB/T 7714 引用协议
- BFF:services/paper/{mcp_client,agent}.py(裸 JSON-RPC 客户端 + 规则状态机)、
routers/paper.py、schemas.py 4 个 Paper*Block + ArtifactBlock 加 paper_id/citation_count、
config.py 开关、main.py 条件注册、docgen.py 抽 insert_artifact 公共 helper
- 前端:intent.js paperIntent 纯函数、Composer docgen 分支 sub-route、sendPaper/轮询、
PaperBriefCard/PaperOutlineCard/PaperProgressCard、DocPane cite-chip
- deploy/paper_restart.sh + toggle_paper.sh;compile_sdk.sh 白名单追加 paper 文件
- tests/paper 26 条(工具逻辑 + MCP 协议 + BFF 状态机 + 块 schema + 前端 intent 单测)
2026-09-30 22:29:22 +08:00
admin
0282cfeeeb
feat(bioflow): 阶段进度条+滚动日志+点击定位全链;图片注入三修;QA启动就绪等待
...
- 生信进度:后端新增 stage_progress 事件帧+进度解析白名单(rnaseq_qc/sample_qc),
kernel 日志流式落盘(20行/1s flush+fsync),logs 分页端点(offset/limit/eof),
事件 seq 跨重启扫描续增(2026-09-17 断流修复);前端 FlowProgressCard 确定性/
不确定两态进度条+点击定位到生信任务 TAB,BioJobsPane DAG 行展开滚动日志区
(3s 轮询),log_tail 4000 截断,重跑 stage_started 清零进度
- 图片注入:figures 三源重构(标准DOI图库主路径/遗留体系兜底/PMC兜底),
[[FIG:]] 宽松归一化识别 PMC/PMID/DOI 三种形态,引文兜底扩展至
[PMCID:]/[DOI:] 且标记未满配额继续注入,注入预算 90s/10篇(175 实测校准),
PMC graphic 无 content-type 宽松正则,空结果不缓存(176 冷连接三连败修复)
- QA 启动自愈:start.sh 启动前等 Qdrant readyz(30min)+Neo4j TCP(10min);
backend_guard 标签校验改子集判定
- 样本配对:同 inode 去重优先真实文件,R1/R2 归一配对一对一认领
- gitignore 新增 *.bak-*/*.before-*/bioflow_service/bioflow.db
测试:bioflow_service pytest 358/358,前端 bioflow vitest 205/205
2026-09-24 16:48:52 +08:00
admin and Claude Fable 5
0f6e16ce79
fix(sdk): run.sh 读取 PORT/PYTHON/BIND 移到 source .env 之后
...
- 此前 BIND 在 source 前读取,.env 的 BFF_BIND_HOST 覆盖失效,
175 开发形态绑到 127.0.0.1 导致内网 IP 无法访问
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-17 14:47:38 +08:00
admin and Claude Fable 5
964346dc77
fix(sdk): run.sh source .env + BIND host env 化(BFF_BIND_HOST)
...
- source .env 进 os.environ:neo4j.py 的 BFF_NEO4J_* 键与上游 URL 依赖
进程 env,仅靠 pydantic env_file 不够(175 重启卡点实测)
- BIND host env 化:默认 127.0.0.1(176 生产,nginx 80 唯一入口);
175 开发在 sdk/.env 设 BFF_BIND_HOST=0.0.0.0
- 一份脚本两机通用,下次打包部署 176 不会把 BFF 暴露到 0.0.0.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-17 14:45:01 +08:00
admin and Claude Fable 5
f10b86c088
feat(deploy): start_all 生信段尊重 BIOFLOW_ENABLED(默认 false=无生信版)
...
- 176 默认(含开机自启 plantai-apps.service)即为无生信启动版:
BIOFLOW_ENABLED=false 时 start_all 不拉起 8098,生信 TAB/入口不可见
- 开关来自 sdk/.env,切回生信版=bash toggle_bioflow_176.sh on
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-17 07:56:49 +08:00
admin and Claude Fable 5
d0e6c76ec1
feat(ui): 无生信启动时隐藏扩展按钮
...
- 扩展按钮与生信跳转按钮互补显隐:生信可用时显示扩展、
不可用时隐藏扩展并显示生信跳转(PlantAI-dev 9017 入口)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-17 07:37:32 +08:00
admin and Claude Fable 5
16bde32020
feat(ui): 右上角生信跳转按钮+四按钮文字标签
...
- TopBar 新增「生信」按钮(仅生信模块不可用时显示):点击开新窗访问
PlantAI-dev(当前主机名:9017,公网/内网自适应)
- 扩展/生信/设置/主题四按钮配文字标签(图标+文字并排,宽度自适应)
- 新增 deploy/toggle_bioflow_176.sh <off|on>:一键开关 176 生信模块
(改 BIOFLOW_ENABLED + 重启 BFF;off 时 /api/bioflow/health 404,
前端生信 TAB 自动隐藏)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 20:44:23 +08:00
admin and Claude Fable 5
ba43ba90bf
feat(bioflow): 样本配置 LLM 兜底——规则无法归纳时 DeepSeek 生成描述
...
- inspect_unknown_files:文件特征清单(路径/大小/magic/file 类型/压缩包
内嵌名),无扩展名随机名也能拿到结构化特征
- llm_sample_fallback:描述文件+实况分析均无结果时,把特征清单交给
complete_json(复用 DOCGEN_LLM_* 键)生成样本描述;r1/r2 回验存在性
(清单路径或解压后),幻觉路径丢弃;LLM 失败/未配置静默跳过
- prompt 独立文件(bioflow_service/app/prompts/llm_sample_analysis.txt)
- 5 个新单测(特征×2+回验/幻觉拒绝/不可用×3)+ 340 用例全绿;已部署 176
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 20:13:32 +08:00
admin and Claude Fable 5
36d3d8d62a
fix(bioflow): 描述文件候选择优+去除登记文件数上限
...
- 登记目录不再截断 200 文件上限(用户原始数据目录可能很大)
- 描述文件发现改为候选全收→逐份解析→按样本条目数择优(修复
此前选到无样本语义 tsv 导致语义丢失);tsv/csv 平手优先
- samples.yaml 保留描述文件语义(样本名+分组字段),路径经实况校正
- 176 rice 目录终验:登记 244 文件,样本名 HH11_Control_0h_rep1 等
分组语义保留,r1/r2 指向真实 fastq;任务 running
- 340 用例 + 4 场景全绿
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 20:03:49 +08:00
admin and Claude Fable 5
f2c101ec65
feat(bioflow): 样本配置智能分析——描述文件优先+实况分析+解压
...
- ensure_samples_yaml 重写(用户要求,不做变体匹配):
1. 描述文件发现(源目录树限深度 4):tsv/csv > xlsx > yaml/yml
2. 实况分析:分类原始序列与压缩包(tar/zip 解压到 input/archives/,
幂等),R1/R2 语义配对(不假设命名规律)
3. 描述文件路径校正:失效路径按 run 标识在实况中定位(唯一命中替换,
按 R1/R2 分边;零命中保留由 CLI 报错)
4. 生成 samples.yaml 引用真实路径,返回 fastq 父目录并入执行容器挂载
- 176 实测:rice 目录 24 样本全部通过输入校验,fastp 真实执行
- 340 用例 + 4 场景(tsv 校正/xlsx/实况配对/压缩包)全绿
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 19:54:21 +08:00
admin and Claude Fable 5
750e218541
fix(bioflow): 卡片防误操作+暂停立即生效+确认幂等
...
- 可调整参数卡「继续」成功后按钮隐藏,显示「参数已确认」
- 确认分析路径卡「确认创建任务」成功后按钮隐藏,显示「任务已创建」
- 后端 confirm_stage 幂等:已确认且 running/queued 的重复确认放行(不再 409)
- 暂停立即生效:docker run 加 --name,docker kill 终止执行容器,
running 阶段置 paused、任务即时暂停(kill 的 exit 137 不误判 failed)
- 340 后端用例 + 121 r3debug + 373 主套件全绿;已部署 176
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 18:01:24 +08:00
admin and Claude Fable 5
becf76ecd9
feat(bioflow): 分析路径规划中提示——planning 帧+前端思考中状态
...
- 后端 chat 流在规划开始前发 planning 帧(seq=-2,与 plan_ready 同机制)
- 前端收到 planning 帧立即创建 bioflow_path 块(status=running,
脉动圆点+「正在分析需求并规划分析路径…」),plan_ready 填入候选并关闭
- bioflow store 增加 planning/planningText 状态
- 339 后端用例 + 121 r3debug + 373 主套件全绿;已部署 176
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 16:15:17 +08:00
admin and Claude Fable 5
dcb810a758
feat(bioflow): wgs/pop/gwas 26 阶段参数契约(与 rnaseq 同款机制)
...
- stage_image_map 加 26 个 wgs/pop/gwas 阶段 cli_contract:
--workspace/--job-id/--prefix 公共三元组 + 上游 manifest 注入
(prev_manifest:<stage> 解析为 workspace/final/{prefix}.{stage}.manifest.json)
+ param:<name> 用户参数 + tool:<name> 镜像内工具
- kernel _contract_args 扩展 prev_manifest/tool 两种 source
- catalog 补 wgs/pop/gwas 参数 schema(确认表单收集参考基因组/样本清单/
表型文件/主成分等)
- 339 用例全绿;已部署 176
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 15:33:43 +08:00
admin and Claude Fable 5
3b512fffd0
fix(bioflow): rnaseq/wgs 阶段参数契约——CLI 参数注入+样本配置自动生成+产物路径对齐
...
- stage_image_map 加 cli_contract(13 个 rnaseq 阶段):-i/-o/-c 等
标志按契约注入;无契约阶段保持 --input-dir 默认形态
- rnaseq 系 -o 语义=产物目录,契约注入 workspace/final(CLI 内部以
output.parent 为 workspace 并建 output.parent/final——此前注入
workspace 导致 /job/final 权限错误)
- 登记目录自动生成 samples.yaml(按 f1/r1+f2/r2 配对,不覆盖手工配置;
此前 CLI -c 必填无来源,rnaseq 全链从未真实跑通)
- catalog 补 hisat2_index/gtf/prefix 参数 schema(确认表单收集)
- 338 用例全绿;176 真实任务验证:fastp 在真实 fastq 上产出 clean
产物+报告(首个真实跑通的 rnaseq 阶段)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-16 15:23:50 +08:00
admin and Claude Fable 5
04fb306624
fix(bioflow): 内核树运行时挂载——非 gf 阶段镜像缺 cli 模块
...
- 8 个阶段镜像中仅 bioflow-gf 内置 /bioflow-kernel,其余 7 个
(rnaseq/wgs/gfpy/rnar/rde/pan/interproscan) 执行时 No module named cli
- 服务端统一 -v kernel_dir:/bioflow-kernel:ro + -w /bioflow-kernel,
全部镜像可用,免重建 7 个镜像
- config 新增 kernel_dir/container_kernel_dir(env 可覆盖)
- 337 用例全绿
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-15 23:22:06 +08:00
admin and Claude Fable 5
2ee9af4bd0
fix(bioflow): 路径登记目录展开+黑名单+自动挂载
...
- 登记目录自动展开多文件(扩展名白名单过滤,上限 200)
- 移除白名单根校验(用户数据可在任意位置),改敏感路径黑名单
(/etc /root /proc /var/lib/docker 等前缀 + .env/*.key/id_ed25519 等文件名)
- 登记文件 symlink 进任务 input + server_registered.json 持久化
- 执行容器自动挂载登记路径(-v src:src:ro),跨重启恢复
- 前端 chat.js 兼容 items[] 响应(单文件亦在 items[0])
- 336 用例全绿
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-15 23:11:27 +08:00
admin and Claude Fable 5
957f3cb062
feat(ui): 导航按钮迁移右上角+删除会话栏底部工具栏
...
- 会话/扩展/知识图谱/设置 4 按钮自侧栏迁移至 TopBar 右侧(与主题按钮并列)
- 按需求收敛为扩展/设置两按钮,与主题按钮右上角同行水平对齐
(.theme-toggle-anim 改 inline-flex + svg 脱离基线,消除图标下沉)
- SessionRail 全档位删除(桌面底部工具栏/折叠态图标轨/窄屏抽屉)
- 清理死接线:openKg 函数与 toggle-side/goto-kg 事件
- 同步删除 r3debug 的 SessionRail 测试用例
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-15 22:49:41 +08:00
admin
e3870d19de
fix(extension): run 方法守卫与 trial 统一——适配器 _real 非 None 即执行
2026-09-15 12:35:48 +08:00
admin and Claude Fable 5
a008fbba2a
fix(extension): 产物收割排除代码副本+删 work 目录——输出契约校验语义不变
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-15 11:59:42 +08:00
admin and Claude Fable 5
3989dd3c3a
fix(extension): 容器入口可写工作目录——代码复制进 run_dir 执行+产物收割输出
...
18 用例脚本在 cwd 写 outputs/ 相对目录,代码挂载只读致 trial 失败。
等价做法:代码复制进 output/work 执行,{code_dir} 指向可写副本,
成功后 work 产物合并进 output_dir,输出契约校验不变。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-15 11:58:17 +08:00