Commit Graph
25 Commits
Author SHA1 Message Date
CNWei 78ddc17fce fix(frontend): 稳定虚拟环境探测状态,避免输入时闪烁
探测状态保留上一次结果,新结果返回后再更新;空目录改为中性提示;防抖期间不因旧工作目录闪出警告;占位数据期间不自动回填虚拟环境。
2026-11-04 23:02:30 +08:00
CNWei 10f8e6bb66 style(frontend): 精简脚本语言提示并移除解释器输入框
- 脚本语言提示从大块灰色卡片改成下拉框右侧的一行说明
- Python 表单不再显示解释器输入框,固定使用 .venv 里的 Python
- 虚拟环境目录字段改为全宽并明确自动探测语义
- 非 Python 语言仍由语言自动设置 cmd.exe/node.exe/lua.exe,API 仍可传自定义 interpreter
2026-11-04 22:51:37 +08:00
CNWei 917674880b feat: 拆分任务类型并支持脚本语言联动
- 任务类型改为「执行脚本 / 发起 HTTP 请求 / 运行二进制程序」,脚本类型下新增语言选择(Python / Shell / Node / Lua)
- 语言联动表单:Python 才显示虚拟环境、解释器和 uv 状态;Shell/Node/Lua 隐藏这些字段并切换脚本标签、占位符和调用预览
- 切换语言时自动设置解释器与默认脚本,Shell 通过 cmd.exe /C 执行批处理,Node/Lua 使用对应解释器
- TaskAction 新增可选 language,旧任务按解释器推断;补 Shell 执行测试、语言切换单测与 Playwright 用例
2026-11-04 22:07:14 +08:00
CNWei 8e6b3b92b9 feat: 支持 uv 从 pyproject/requirements 创建虚拟环境
- 工作目录探测新增 pyproject.toml / requirements*.txt 扫描、uv 可用性与 can_create
- 新增 POST /api/v1/python/venv/create:已有虚拟环境优先复用;pyproject 走 uv sync,requirements 走 uv venv + uv pip install,并使用默认 PyPI 镜像
- 编辑器在缺少虚拟环境且具备依赖文件时显示「用 uv 创建环境」;没有 uv 或没有依赖文件时明确报错
- 解释器字段改为可选,留空由服务端默认 python.exe 并使用虚拟环境;Python 任务缺少虚拟环境/依赖文件时运行直接失败,不再回退系统解释器
- 补后端探测/创建测试、前端入口测试与 README
2026-11-03 22:57:17 +08:00
CNWei 29fc579275 feat: 左侧导航改版与 Python 镜像管理
- 应用外壳换成 stash-ui Layout:左侧导航(任务调度 / Python 镜像)+ 页面标题区,窄屏折叠为顶部导航
- 新增 python_mirrors 表与 CRUD/设默认接口,内置清华、阿里云、中科大、PyPI 官方
- Python 脚本任务运行时注入默认镜像的 PIP_INDEX_URL / UV_INDEX_URL,任务自身环境变量优先
- 新增镜像管理页与表单,支持新增、编辑、启用/停用、设默认、删除
- 重新生成 OpenAPI 与 TS 类型;补齐后端镜像测试、前端单测与 e2e,修复窄屏页面被宽表格撑开
2026-11-03 22:12:11 +08:00
CNWei d7a6e17531 style(frontend): 去掉刷新提示条、隐藏弹窗滚动条并前置时区列
- 刷新按钮保持「刷新」文案,不再出现「同步中...」和顶部进度条,仅禁用防重复点击
- 任务编辑器 / 目录选择弹窗隐藏滚动条,滚轮与触控板仍可滚动
- 任务表「时区」列移到「调度周期」前面
2026-11-02 23:43:31 +08:00
CNWei c7a66c22b6 feat(frontend): 时区下拉、表格时区列与刷新反馈
- 编辑器 IANA 时区改为 Select,当前只保留 Asia/Shanghai;编辑旧任务时保留其已有值
- 任务表新增「时区」列,类型标签并入名称列,重新分配列宽
- 手动刷新改为独立状态 + 顶部进度条 + 固定按钮宽度,避免刷新时工具栏左右跳动与旧内容残留的观感
2026-11-02 23:32:03 +08:00
CNWei 608872bf06 fix(frontend): 修复已结束运行打不开日志的问题
StrictMode 的 effect 清理会取消挂载时排队的 rAF,但没有把句柄归零;已结束的 run 在挂载时就处于 complete 状态,后续 ingest 看到「还有帧在排队」便不再安排渲染,日志一直停在「等待日志输出...」。取消后把 frameRef 归零,并在 e2e 增加「运行结束后重新打开日志」的回放断言。
2026-11-02 23:19:07 +08:00
CNWei d3f0f57f6d feat(frontend): 自动回填并支持修改虚拟环境目录
- 虚拟环境目录与解释器移到工作目录正下方,虚拟环境目录优先且更宽
- 探测到虚拟环境时自动填入(工作目录内用相对路径 .venv),仍可手动修改
- 手动改过的值不再被探测结果覆盖;换工作目录只清理上一轮自动填入的值并重新探测
- 防抖期间忽略过期探测结果,避免旧环境被回填
2026-11-02 23:08:13 +08:00
CNWei b7ded69a7d fix(cron): 用中文说明替代解析器原始报错
- 后端 CronPreviewError 增加 user_message,预览与任务保存共用;解析器英文原文只写日志
- 针对「0/2」这类单数字步长给出具体改法(*/2 或 1-10/2)
- 前端预览面板用警告图标 + 中文提示展示,网络异常回退通用文案,Cron 输入同步 aria-invalid
2026-11-02 22:35:39 +08:00
CNWei b2ff255e32 style(frontend): 重排任务编辑器布局
- 未来运行时间改为全宽三列面板,次数选择器移到面板头部,去掉内部滚动条
- Cron / 超时、时区 / 任务类型两两成行,消除原右列的大片空白
- 校验改为提交时触发,避免 blur 插错误行导致下方控件位移、下拉框点击丢失
2026-11-02 22:28:31 +08:00
CNWei 369fc07b62 style(frontend): 搜索框贴左边缘对齐
工具栏去掉左侧内边距,让搜索框与页头、指标卡的左边缘对齐;右侧保留 16px 给筛选控件,窄屏恢复左右对称留白。
2026-11-02 22:00:04 +08:00
CNWei 69d721055d fix(frontend): 补齐全局按钮 reset,修复 Select 选项灰底
组件库的 Select / Segmented / Tabs / Menu 都把按钮底色交给宿主 reset;之前 index.css 只设了 cursor,Chrome 默认的 ButtonFace 灰底和按钮边框就露了出来,下拉面板看起来像一块块灰条。
2026-11-02 21:47:03 +08:00
CNWei 3c1a603b90 style(frontend): 接入 stash-ui 设计系统
- 依赖 @stash/ui(file:../../stash-ui),统一引入 style.css 与 Toaster
- 任务面板、表单、弹窗、日志、状态标签全部迁到组件库,App.css 只保留页面布局
- 移除自写 useFocusTrap,改用基于原生 dialog 的 Modal
- 修复 LogViewer 流式追加时误判离开底部、导致不再自动跟随的问题
- 发布脚本检查 stash-ui 产物;README 补充组件库构建与 file: 依赖刷新说明
2026-11-01 23:54:35 +08:00
CNWei 07ca14ea34 perf(logs): 日志事件按窗口合并推送,抽屉改为虚拟滚动
- 后端 LogSink 把逐行事件按 16 KiB / 100 ms 合并成一条 log 事件,文件写入保持即时;后台 tick 与析构 flush 保证低输出和收尾都不丢尾部
- 前端新增 LogViewer:固定行高虚拟滚动、跟随底部/回到最新,增量按 rAF 合并,长日志 DOM 节点数恒定
- 日志抽屉改为行缓冲(lib/logLines)+ 可见窗口计算(lib/logWindow)
- 详情区改 flex 布局,日志面板吃掉剩余高度,回到最新按钮不再被裁到面板外
- 测试:Rust 单元 52→57,Vitest 13→28,Playwright 4→5(1500 行虚拟滚动)
- 文档:README 补充合并推送与虚拟滚动,新增 ADR-0008
2026-10-27 22:38:53 +08:00
CNWei 14fb3563c5 chore(fonts): 字体二进制不入库,改用脚本生成
- 远程仓库对单次推送体积有限制,6.7 MB 字体无法一次推送,先从版本库移除
- 新增 tools/build-fonts.py:下载官方分包、合并并子集化,一条命令重建
- @font-face 保留,字体缺失时回退系统字体;离线用例改为按可用性断言
2026-10-26 00:46:20 +08:00
CNWei 942f8de3b7 docs: 重写 README 并加入 uv 示例与端到端自检
- README 重排为快速开始、执行语义、输入校验、API 参考与故障排查
- 新增 samples/python-task:uv 管理的演示任务
- 新增 tools/verify.py:14 项 API 全链路自检
2026-10-26 00:38:16 +08:00
CNWei 815258c19b feat: 加固运行期可靠性并补齐调度与观测接口
- 运行句柄按 run_id 归属,修复取消后重跑时闸门被旧运行删除的竞态
- 调度循环改用取消令牌退出,启动时对账遗留运行,校验 rows_affected
- 三类任务统一参与调度,新增 /api/v1/stats 与 /api/v1/schedule
- SQLite 启用 WAL 与 busy_timeout,日志清理跳过活跃文件,单行上限 256 KiB
- 前端缓存管理令牌并在 403 时重试一次,仪表盘改用统计接口
2026-10-26 00:38:16 +08:00
CNWei 773196d689 style(frontend): 对齐 Alright 主题并接入离线字体
- 主题色板、圆角、阴影与 0.3s 缓动对齐参考站点,布局与尺寸不变
- index.html 预加载本地字体,index.css 定义 LXGW WenKai / Outfit-Medium
- 新增断网渲染端到端用例与 ADR-0006
2026-10-26 00:38:15 +08:00
CNWei e555610037 feat: 工作目录支持页面内目录浏览器 2026-10-24 23:20:20 +08:00
CNWei dd7612bc74 feat: 编辑器实时探测并显示已关联虚拟环境
fix: 按系统 ANSI 代码页解码子进程输出,修复中文日志乱码
2026-10-24 22:30:10 +08:00
CNWei 23565b40a4 feat: 解决python虚拟环境问题 2026-10-19 23:32:08 +08:00
CNWei 00a608c149 feat: 修改前端显示 2026-10-18 22:52:18 +08:00
CNWei 8ce02af13a feat: implement full-stack TaskPilot scheduler 2026-10-18 22:05:45 +08:00
CNWei d88c21753d 上传文件至 /
Rust 本地轻量化任务引擎 · Windows 原生调度中心
2026-10-17 16:17:59 +08:00