- F1: RuntimeService.list_runs 公共 Run 发现(工作区/会话/状态筛选); task_public_payload 序列化收敛至 models.py 核心层单一实现(Web/公共入口同构, helpers.py 旧实现删除,无新旧双轨) - F2: tasks/api.py 7 处、api_v1.py 3 处、chat/approval.py 6 处全部转调 runtime_service;HTTP 轮询透传 window_start 缺口水位;死导入清零 - F3: _resources_for_query 补 principal workspace_id 一致性校验 (跨工作区查询必须重新认证) - F4: config 新增 ASTRION_IGNORE_DOTENV 逃生门(.env 对 ASTRION_DATA_ROOT 的 优先覆盖是刻意设计,保留);验收测试自包含(假模型 127.0.0.1:9 快失败)+ 隔离生效断言;lifecycle 改 api_request_start 装配证据断言; 新增审批等待链验收(approval 档真实工具循环:等待→公共入口批准→继续); chain 首段改双客户端场景(B 经 list_runs 发现 A 的 Run 并观察/取消) - execution_plane/base.py 注释修正:命令校验/路径授权仍在旧链路(审核 §4) - 全量 75 测试:失败恰为 4 项存量,与改造无关
31 lines
1010 B
Python
31 lines
1010 B
Python
"""简单任务 API:将聊天任务与 WebSocket 解耦,支持后台运行与轮询。"""
|
||
from __future__ import annotations
|
||
import mimetypes
|
||
import json
|
||
import time
|
||
import threading
|
||
import uuid
|
||
import re
|
||
from collections import deque
|
||
from pathlib import Path
|
||
from typing import Dict, Any, Optional, List
|
||
|
||
from flask import Blueprint, request, jsonify
|
||
from flask import current_app, session
|
||
|
||
from server.auth_helpers import api_login_required, get_current_username
|
||
from server.context import get_user_resources, ensure_conversation_loaded
|
||
from server.chat_flow import run_chat_task_sync
|
||
from server.state import stop_flags
|
||
from server.utils_common import debug_log, log_conn_diag
|
||
from utils.host_workspace_debug import write_host_workspace_debug
|
||
from config import DATA_DIR, WORKSPACE_SKILLS_DIRNAME
|
||
from server.tasks.models import TaskRecord
|
||
|
||
|
||
SKILL_FRONTMATTER_RE = re.compile(r"^---\s*\n(?P<body>.*?)\n---\s*\n?", re.S)
|
||
SKILL_FIELD_RE = re.compile(r"^(?P<key>name|description)\s*:\s*(?P<value>.*)$")
|
||
|
||
|
||
|