feat: 首页改版与 uv / 镜像配置收敛,精简任务数据结构

- 页头只保留品牌与操作图标,三栏改为 1:2:1、容器最宽 1320
- 任务卡片:状态标签移入标题行并缩小,隐藏任务标识,操作行贴内容底边
- uv 配置弹窗:删掉与首页重复的状态条,三段配置改成标签页
- 镜像源:弹窗去掉默认镜像汇总,首页卡片改为展示默认镜像与运行时注入的变量
- 后端:迁移合并为单一基线 0001_init,删掉未生效的 concurrency_policy / retry_*,
  运行触发只剩 schedule / manual;contracts、前端生成类型、README / PLAN 同步
This commit is contained in:
2026-11-08 21:26:47 +08:00
parent 37479f48c7
commit 8fdc55e17d
40 changed files with 2421 additions and 1360 deletions
+52 -46
View File
@@ -902,11 +902,20 @@
"schema": {
"type": "string"
}
},
{
"name": "include_files",
"in": "query",
"description": "是否一并返回文件(挑选可执行文件时用);默认只返回目录",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Subdirectories of the requested path, or the drive list",
"description": "Subdirectories of the requested path (plus files when `include_files=true`), or the drive list",
"content": {
"application/json": {
"schema": {
@@ -1465,12 +1474,6 @@
},
"components": {
"schemas": {
"ConcurrencyPolicy": {
"type": "string",
"enum": [
"skip"
]
},
"CreateManagedEnvRequest": {
"type": "object",
"required": [
@@ -1548,12 +1551,13 @@
"action": {
"$ref": "#/components/schemas/TaskAction"
},
"concurrency_policy": {
"$ref": "#/components/schemas/ConcurrencyPolicy"
},
"cron": {
"type": "string"
},
"description": {
"type": "string",
"description": "一句话说明,展示在任务卡片和详情里"
},
"enabled": {
"type": "boolean"
},
@@ -1563,9 +1567,6 @@
"name": {
"type": "string"
},
"retry_policy": {
"$ref": "#/components/schemas/RetryPolicy"
},
"timeout_secs": {
"type": "integer",
"format": "int64",
@@ -1620,9 +1621,14 @@
"type": "object",
"required": [
"name",
"path"
"path",
"is_dir"
],
"properties": {
"is_dir": {
"type": "boolean",
"description": "true 表示目录(可继续进入),false 表示文件(`include_files` 时才出现)"
},
"name": {
"type": "string",
"description": "用于展示的名称"
@@ -1869,22 +1875,6 @@
}
}
},
"RetryPolicy": {
"type": "object",
"properties": {
"delay_secs": {
"type": "integer",
"format": "int64",
"minimum": 0
},
"max_attempts": {
"type": "integer",
"format": "int32",
"minimum": 0
}
},
"additionalProperties": false
},
"RunStatus": {
"type": "string",
"enum": [
@@ -1901,8 +1891,7 @@
"type": "string",
"enum": [
"schedule",
"manual",
"retry"
"manual"
]
},
"ScheduledTaskResponse": {
@@ -2136,12 +2125,11 @@
"required": [
"id",
"name",
"description",
"cron",
"timezone",
"enabled",
"timeout_secs",
"concurrency_policy",
"retry_policy",
"action",
"created_at",
"updated_at"
@@ -2150,9 +2138,6 @@
"action": {
"$ref": "#/components/schemas/TaskAction"
},
"concurrency_policy": {
"$ref": "#/components/schemas/ConcurrencyPolicy"
},
"created_at": {
"type": "string",
"format": "date-time"
@@ -2160,6 +2145,10 @@
"cron": {
"type": "string"
},
"description": {
"type": "string",
"description": "一句话说明"
},
"enabled": {
"type": "boolean"
},
@@ -2169,9 +2158,6 @@
"name": {
"type": "string"
},
"retry_policy": {
"$ref": "#/components/schemas/RetryPolicy"
},
"timeout_secs": {
"type": "integer",
"format": "int64",
@@ -2369,21 +2355,19 @@
"action": {
"$ref": "#/components/schemas/TaskAction"
},
"concurrency_policy": {
"$ref": "#/components/schemas/ConcurrencyPolicy"
},
"cron": {
"type": "string"
},
"description": {
"type": "string",
"description": "一句话说明,展示在任务卡片和详情里"
},
"enabled": {
"type": "boolean"
},
"name": {
"type": "string"
},
"retry_policy": {
"$ref": "#/components/schemas/RetryPolicy"
},
"timeout_secs": {
"type": "integer",
"format": "int64",
@@ -2417,6 +2401,13 @@
"type": "string"
}
},
"mirror_url": {
"type": [
"string",
"null"
],
"description": "uv 本体与解释器的下载镜像根(GitHub Release 镜像);空 = 内置默认"
},
"source": {
"$ref": "#/components/schemas/UvSource"
}
@@ -2456,6 +2447,9 @@
"managed_dir",
"python_dir",
"cache_dir",
"mirror_url",
"uv_download_url",
"python_mirror_url",
"env_defaults",
"candidates"
],
@@ -2508,13 +2502,25 @@
"type": "string",
"description": "程序目录下的 uv 目录"
},
"mirror_url": {
"type": "string",
"description": "当前使用的下载镜像根(GitHub Release 镜像);空值时返回内置默认"
},
"python_dir": {
"type": "string",
"description": "实际生效的 Python 存放目录(绝对路径,相对值按程序目录解析)"
},
"python_mirror_url": {
"type": "string",
"description": "Python 解释器的下载地址前缀(注入 `UV_PYTHON_INSTALL_MIRROR`)"
},
"source": {
"$ref": "#/components/schemas/UvSource"
},
"uv_download_url": {
"type": "string",
"description": "uv 自身压缩包的下载地址前缀"
},
"version": {
"type": [
"string",