caoqianming
|
1aa79ae0b1
|
fix(node): 修复重连状态分裂与界面假未注册
|
2026-08-19 14:53:36 +08:00 |
caoqianming
|
67ee7c244e
|
fix(node): 统一 adapter 合同加载入口
|
2026-08-19 14:02:06 +08:00 |
caoqianming
|
e521f832c4
|
feat(node): persist professional software workspaces
|
2026-08-19 10:55:19 +08:00 |
caoqianming
|
487d139d39
|
feat(node): implement guarded Mechanical static solving
|
2026-08-19 09:32:34 +08:00 |
caoqianming
|
365b049f1b
|
fix(node): auto-sync discovered capabilities
|
2026-08-18 15:11:54 +08:00 |
caoqianming
|
bf2bf48ad0
|
feat(software): add guarded ANSYS node adapter
|
2026-08-18 14:39:46 +08:00 |
caoqianming
|
548d7a2912
|
fix(web): treat progress panel as run state
|
2026-08-17 12:14:40 +08:00 |
caoqianming
|
927d059388
|
feat(software): automate job completion follow-ups
|
2026-08-17 12:12:27 +08:00 |
caoqianming
|
30c12f9808
|
fix(web): make task progress run-scoped and recoverable
|
2026-08-17 11:07:57 +08:00 |
caoqianming
|
4426ef9214
|
feat(software): add declarative recipe revisions
|
2026-08-14 17:50:12 +08:00 |
caoqianming
|
d62b5e0766
|
feat(origin): expand scientific chart types
|
2026-08-14 16:21:32 +08:00 |
caoqianming
|
4a53bc7827
|
feat(software): support independently deployed adapters
|
2026-08-14 15:10:24 +08:00 |
caoqianming
|
c4ce89afa0
|
feat(origin): add publication layout controls
|
2026-08-14 13:32:07 +08:00 |
caoqianming
|
25616d12cc
|
refactor(software): introduce capability contracts
|
2026-08-14 12:55:46 +08:00 |
caoqianming
|
b929cee832
|
fix(windows-node): 收敛结果上传状态并补充诊断日志
|
2026-08-14 11:15:54 +08:00 |
caoqianming
|
13ba6b1a61
|
feat(software): add local monitoring and multi-artifact jobs
|
2026-08-14 10:41:49 +08:00 |
caoqianming
|
51a213e3a7
|
fix(software): normalize job output artifacts
|
2026-08-14 08:57:36 +08:00 |
caoqianming
|
40f8899cc1
|
feat(software): require artifact inputs for Origin jobs
|
2026-08-13 17:25:21 +08:00 |
caoqianming
|
e6128c7e5b
|
build(windows-node): add batch deployment workflow
|
2026-08-13 17:00:40 +08:00 |
caoqianming
|
8aafe3272f
|
feat(software): add professional software job center
|
2026-08-13 15:59:31 +08:00 |
caoqianming
|
ded8cba54c
|
refactor(software): rename Windows execution domain
|
2026-08-13 15:28:04 +08:00 |
caoqianming
|
3e0a719f80
|
feat(compute): complete Origin job execution pipeline
|
2026-08-13 14:39:36 +08:00 |
caoqianming
|
faa2279f00
|
docs(release): separate development pushes from releases
|
2026-08-13 13:55:47 +08:00 |
caoqianming
|
054aaf8e8c
|
feat(chat): 结构化用户附件并支持图片预览
|
2026-08-13 10:32:08 +08:00 |
caoqianming
|
b555059bc4
|
feat(admin): manage Windows compute nodes
|
2026-08-12 17:17:02 +08:00 |
caoqianming
|
fac4e5fa0a
|
feat(compute): add Windows Node desktop client
|
2026-08-12 16:57:06 +08:00 |
caoqianming
|
109d395356
|
feat(compute): 实现 Windows Node 注册与心跳
|
2026-08-12 15:56:28 +08:00 |
caoqianming
|
1ac9aa1ba0
|
fix(files): prevent silent upload overwrites
|
2026-08-12 14:13:42 +08:00 |
caoqianming
|
6b37ce141f
|
perf(storage): optimize database hot paths
|
2026-08-12 13:54:40 +08:00 |
caoqianming
|
4932f00e90
|
feat(artifacts): add lifecycle tracking and trash
|
2026-08-12 12:44:28 +08:00 |
caoqianming
|
2b4316ed25
|
refactor(external-systems)!: 统一为通用 API provider
移除 factory_mes preset 和兼容包装,新增存量 definition 一次性迁移脚本,并让 OpenAPI 参数直接遵循规格约束。
BREAKING CHANGE: 管理 API 不再接受 factory_mes provider,部署新版前必须先执行 definition 迁移脚本。
|
2026-08-10 17:26:39 +08:00 |
caoqianming
|
44b7df6f20
|
feat(external-systems): add generic MCP connector
|
2026-08-10 16:04:51 +08:00 |
caoqianming
|
8d741e4141
|
fix(preview): support document previews in app webviews
|
2026-08-10 08:55:44 +08:00 |
caoqianming
|
9032c5b517
|
fix(external-systems): preserve credentials on definition updates
|
2026-08-07 11:25:29 +08:00 |
caoqianming
|
0e4bd0456a
|
feat(external-systems): 重构连接治理与运行态缓存
|
2026-08-07 10:12:37 +08:00 |
caoqianming
|
02e7d2cb14
|
feat(files): create folders from file panel
|
2026-08-06 15:04:15 +08:00 |
caoqianming
|
7e544827c0
|
feat(files): toggle task hidden directories
|
2026-08-06 12:05:36 +08:00 |
caoqianming
|
80fbc7ab4a
|
feat(external-systems): support generic OpenAPI integrations
|
2026-08-05 17:18:29 +08:00 |
caoqianming
|
af0ad934bb
|
feat(external-systems): guide MES aggregate queries
|
2026-08-05 15:01:43 +08:00 |
caoqianming
|
cb9a39f33d
|
feat(external-systems): add managed MES connections
|
2026-08-04 16:53:58 +08:00 |
caoqianming
|
cee4eb4c14
|
feat(eval): add reproducible technical benchmark
|
2026-08-03 16:10:38 +08:00 |
caoqianming
|
57655984dd
|
feat(web): add task-scoped artifact references
|
2026-08-03 13:49:20 +08:00 |
caoqianming
|
8999fb1b77
|
fix(rendering): detect LibreOffice components
|
2026-08-03 09:27:30 +08:00 |
caoqianming
|
13e3e50371
|
fix(web): sort tasks by recent activity
|
2026-07-31 15:02:13 +08:00 |
caoqianming
|
afdcf46577
|
feat(tasks): streamline task creation and embedded entry
|
2026-07-31 14:31:50 +08:00 |
caoqianming
|
cfc1d17af7
|
优化工具失败观测与重复保护
|
2026-07-29 09:29:44 +08:00 |
caoqianming
|
98713bb7fa
|
feat(seedance): support image-to-video references
|
2026-07-27 10:50:13 +08:00 |
caoqianming
|
fd79edb344
|
test(web): DB 面路由测试(tasks CRUD/files DB-aware/upload)+ 修 restore 500
测试库基建落地(docker postgres:16-alpine @5433 + migration 0001-0022,
RUN.md 补一键命令),tests/test_web_routes_db.py 10 用例补齐 nodb 套件留待面:
- tasks CRUD 全链:建(默认模型/working_dir)/列(分页壳)/详(上下文压力
字段)/PATCH 校验/软删→列表消失→恢复/同 wd 共享 + folders 计数
- files 顶层目录 DB-aware(§7.4):rename 级联改 tasks.working_dir(tasks_
updated=1 且 DB 生效)、running→409、move 被引用→409、递归删被引用→409、
软删 task 后放行
- upload 配额 gate 路径 + 根目录列表(system_wd_names)+ 非法文件名 400
- clear/cancel 状态闸、models 档位列表、schedules 404 路径
修 bug(本套件抓出的存量缺陷,重构前即有):POST /v1/tasks/{id}/restore
用 ORM 脏标记恢复,updated_at 是 server-side onupdate,flush 后列被标记
expired,session 关闭后序列化读它抛 DetachedInstanceError——真软删过的
任务恢复必 500(幂等路径无脏标记故此前未暴露)。修法:flush+refresh 后
在 session 内完成 task_dict 序列化。
带测试库全量 344 全过;未设 ZCBOT_TEST_DB_URL 时干净 skip;测试库零残留。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-23 13:50:57 +08:00 |
caoqianming
|
7568ceeb48
|
test(scheduler): 补 core/scheduler 服务层测试(审查 Top3 缺口)+ DB 测试门控收紧
- tests/test_scheduler.py:纯逻辑(cron 校验/next_run 墙钟时区折算/run message
包装)+ DB 级(create 校验、claim 推进 next_run 不重复认领、disabled/软删/
过期不认领、连续失败自动停用、skipped 不动计数)。认领类用例统一用 2000 年
纪元时间,claim_due_jobs(now=纪元) 只可能命中测试 job,永不触碰真实 job
- **DB 测试门控收紧(test_scheduler + test_usage_report)**:只认显式
ZCBOT_TEST_DB_URL,绝不回退 .env 的 ZCBOT_DB_URL —— 实锤教训:.env 的 URL
经隧道指向生产库,测试插入的到点 job 被生产 green 实例调度守护认领并真跑了
agent(4 次一句话迷你调用,费用几厘,产物已按测试专属 user 全量清理,零残留)
- RUN.md:环境段补 ZCBOT_TEST_DB_URL 说明,故障兜底表加一行
301 测试全过(未设测试库时 DB 组自动 skip)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-23 13:00:13 +08:00 |
caoqianming
|
f7e5a80ed9
|
feat(auth): JWT 滑动续签——活跃用户临期无感换 token,不再因 7d TTL 掉线(bump 0.58.39)
原状:无状态 HS256 JWT(默 7d TTL)无任何续签路径,过期即 401——platform 靠
PLATFORM_KEY 自行重换,SPA 用户只能重输密码。判断:平台层握长期 PLATFORM_KEY、
login 本就幂等换发,缺的不是 refresh token 而是"无感重换"这层;放鉴权中间件一次
改动同时惠及 platform 层与 SPA,且纯加法契约。
- web/auth.py:AuthConfig 加 refresh_threshold_seconds(env
ZCBOT_JWT_REFRESH_THRESHOLD_SECONDS,默 TTL 的 1/4,设 0 关闭);verify_token
拆出 decode_token+_uid_from_payload;require_user/admin 共用 _authenticate,
注入 Response,临期就地 mint 新 token 放响应头 X-Refreshed-Token /
X-Token-Expires-At(仅续未过期的,已过期先抛 401)
- web/app.py:CORS 加 expose_headers 放行两头,否则浏览器 fetch 读不到
- web/static/js/api.js:中央 api() 封装 absorbRefreshedToken——任一响应带新
token 就无感换 state.token+localStorage
- 验证:4 case 全绿(fresh 不续/临期续且 exp 正确延长/已过期仍 401/阈值 0 关闭)
顺带:EMBED.md 收敛为纯 platform iframe 对接文档——删企业微信免登 §9(实质併入
RUN.md 企微段「应用主页免登」的内部链路)、校准 §3 换 token 返回体过期字段、补
滑动续签说明;新 env 进 RUN.md、用户可感知条目进 CHANGELOG。
additive,不改字段语义/URL/DB schema;WS ASR 路径 verify_token 签名不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-18 10:21:35 +08:00 |