diff --git a/apps/web/pipeline_backend.py b/apps/web/pipeline_backend.py index d4c12267a..7834670b4 100644 --- a/apps/web/pipeline_backend.py +++ b/apps/web/pipeline_backend.py @@ -1073,14 +1073,22 @@ def resolve_scoped_protein_fasta_from_phylogeny( ) -def resolve_scoped_tree_from_phylogeny( - ws: Path, - final_dir: Path, - prefix: str, - scope_path: Path, -) -> tuple[Path, dict]: - scope_data = read_scope(scope_path) - manifest_candidates = stage_manifest_candidates(final_dir, "phylogeny", prefix, scope_data) +def resolve_scoped_tree_from_phylogeny( + ws: Path, + final_dir: Path, + prefix: str, + scope_path: Path, + explicit_tree_file: str = "", +) -> tuple[Path, dict]: + scope_data = read_scope(scope_path) + if explicit_tree_file: + selected_tree = Path(explicit_tree_file).expanduser() + if not selected_tree.is_absolute(): + selected_tree = ws / selected_tree + if selected_tree.exists() and selected_tree.stat().st_size > 0: + return selected_tree.resolve(), scope_data + raise FileNotFoundError(f"Specified scoped tree file not found: {explicit_tree_file}") + manifest_candidates = stage_manifest_candidates(final_dir, "phylogeny", prefix, scope_data) for manifest_file in manifest_candidates: if not manifest_file.exists(): @@ -8261,7 +8269,13 @@ def run_stage( if member_set_id: cmd += ["--member-set-id", member_set_id] try: - motif_tree_file, _motif_scope_data = resolve_scoped_tree_from_phylogeny(ws, final_dir, prefix, scope_path) + motif_tree_file, _motif_scope_data = resolve_scoped_tree_from_phylogeny( + ws, + final_dir, + prefix, + scope_path, + explicit_tree_file=tree_file, + ) cmd += ["--tree", str(motif_tree_file)] motif_scope_id = str(_motif_scope_data.get("scope_id") or "") except Exception as exc: diff --git a/apps/web/vue3/index.html b/apps/web/vue3/index.html index a4a27f036..c1acbfe65 100644 --- a/apps/web/vue3/index.html +++ b/apps/web/vue3/index.html @@ -1383,6 +1383,7 @@ 名称 + 原始命令 环境 @@ -1405,6 +1406,13 @@ 移除 + 服务器测试数据路径 + +
生成并发布 + + 运行已发布 + 运行结果
@@ -2136,8 +2147,51 @@ +
+
+
AI
+
+
+
+
{{ card.title }}
+
{{ card.purpose }}
+
+ {{ card.status_label || card.status }} +
+
{{ card.summary }}
+ + + + +
{{ card.collapsed_summary }}
+ +
{{ card.error }}
+
+ Yes,确认无误 + 取消 + 提出修订意见 + 重新生成说明 + 开始验证 + 结果无误,继续 + 授权发布 + 确认执行 +
+
+
+
+ -
+
{{ nlStatusText || '正在处理请求...' }}
@@ -2230,7 +2284,7 @@
-
+
⏳
- {{ (currentTask && currentTask.stage ? currentTask.stage : (currentBatchStage || confirmParams.stage || 'analysis')).toUpperCase() }} Executing + {{ executionIndicatorStage.toUpperCase() }} Executing
- ⏱️ {{ executeElapsed }}s | {{ isBatchExecuting ? 'Batch / methodology queue' : 'Refresh every 5s' }} + ⏱️ {{ executionIndicatorElapsed }}s | {{ executionIndicatorStatusText }}
@@ -2284,9 +2338,20 @@
- + + + + - +