Commit Graph

991 Commits

Author SHA1 Message Date
augushong
ee900ffb8a fix(docker): 修复定时器进程因 www-data nologin shell 无法启动的问题
www-data 用户默认 shell 为 /usr/sbin/nologin,导致 su - www-data -c 被拒绝,
定时器从未启动,主机节点心跳不上报。改用 su -s /bin/bash 指定 shell,
并将定时器日志输出到 runtime/timer.log 方便排查。
2026-05-26 20:45:52 +08:00
augushong
8e8c56ab53 chore: bump version to v2.2.0 and update full changelog
更新了版本号到v2.2.0,补充完整的版本更新说明,包含新功能、修复项、文档更新、重构、性能优化和其他变更内容
2026-05-26 20:34:57 +08:00
augushong
e005c9a3a2 docs(version): 补充 admin:version 命令的发布流程注释与帮助说明 v2.2.0 2026-05-26 20:11:06 +08:00
augushong
b7094eee8a fix(host): 主机列表页设为只读
Remove add/edit/delete buttons and auth attributes from host list page. Hosts are auto-registered via heartbeat, manual CRUD is meaningless. Keep only setMaster operation.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-26 18:33:47 +08:00
augushong
e558a97e91 fix(host): 防止主节点重复并修复 setMaster 权限
Clear all is_master flags before electing new master to prevent multiple master records. Fix setMaster annotation from @auth true to proper @NodeAnotation format so permission node is generated correctly.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-26 18:33:46 +08:00
augushong
a47bbb2c6a fix(timer): 自动记录执行日志并捕获结果
Add execute() wrapper in TimerControllerBase that wraps do() with logStart/logEnd, captures return value to result field. Change site URL routing from /do to /execute with task_name injection. Add result field to system_timer_log scheme.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-26 18:33:45 +08:00
augushong
e1bf94a55e feat(timer): 新增日志每日自动清理定时任务
- New LogClean timer controller (site type, frequency 86400s)
- run_type defaults to auto, only one node cleans per day
- Cleans system_timer_log records older than 30 days
2026-05-26 18:33:45 +08:00
augushong
fd89a60425 fix(timer): 修复 F2 代码质量问题
- HostServiceBase: move Log::error before throw so it actually executes
- TimerBase: remove empty comment block
2026-05-26 18:33:44 +08:00
augushong
6dceb028b3 docs(timer): 更新 SKILL.md 和 PROJECT.md 多节点协调文档
T13: E2E single-node regression - all PASS
T14: E2E multi-node coordination - 7/7 PASS
T15: Document multi-node features in ulthon-timer SKILL.md and PROJECT.md
2026-05-26 18:33:43 +08:00
augushong
90e584f5a1 feat(timer): 新增定时器配置、日志和主机的后台管理界面
T10: TimerConfig CURD - task management with run_type/status editing,
     manual trigger button, task_name read-only, no add/delete
T11: TimerLog CURD - read-only log viewer with filters and color badges
T12: Host list enhanced - is_master column, setMaster button
2026-05-26 18:33:43 +08:00
augushong
25fab093fa feat(timer): 新增 run_type 调度、host_id 投递和日志清理
T7: TimerBase shouldExecuteTask() - main/auto/all/manual/disabled modes
    with two-phase DB row lock for auto mode
T8: TimerControllerBase - host_id param, logStart/logEnd methods
    TimerServiceBase - inject host_id into site URLs
T9: TimerLogClean command - php think admin:timer:log:clean --days=30
2026-05-26 18:33:42 +08:00
augushong
abeac2c3cb feat(timer): 新增配置同步到数据库及主节点选举
T5: TimerServiceBase.syncConfigToDatabase() - syncs task config to DB
T6: HostServiceBase - auto master election, stale node detection,
    getMasterNode/setMasterNode methods
2026-05-26 18:33:41 +08:00
augushong
d719a99d14 feat(timer): 新增多节点定时器协调的 Scheme 定义 2026-05-26 18:33:41 +08:00
augushong
20d0b5f22b docs(skills): 新增 ulthon-update-workflow AI 技能文档 2026-05-25 22:51:17 +08:00
augushong
ca094c9116 feat(update): 输出增强 -- 按目录分组、风险摘要、策略标注、--show 过滤 2026-05-25 22:47:46 +08:00
augushong
67c613788f feat(update): 冲突策略参数替代交互确认 2026-05-25 22:44:34 +08:00
augushong
2e3fac93f0 feat(update): 注册冲突策略和输出范围选项 2026-05-25 22:41:08 +08:00
augushong
07d5823c81 feat(update): 后更新引导提示 2026-05-25 21:41:55 +08:00
augushong
65b196e768 feat(update): composer.json 智能对比输出具体命令 2026-05-25 21:38:58 +08:00
augushong
a17ba88068 feat(update): 新增 --dry-run 预览模式 2026-05-25 21:35:47 +08:00
augushong
fb3f807877 refactor(update): extend/think 归入可选更新范围 2026-05-25 21:30:27 +08:00
augushong
76fe865274 perf(update): clone 一次仓库并本地复制替代第二次网络 clone; 排除 public/storage 和 public/build 2026-05-25 21:28:21 +08:00
augushong
279968c9ef chore: 更新 .gitignore 忽略文件
添加 .playwright-mcp 目录到忽略列表,移除末尾多余的换行警告
2026-05-24 11:55:04 +08:00
augushong
646580e6dc 优化开发服务器静态资源加载:router.php 注入缓存头
为 JS/CSS/图片/字体等静态资源添加 ETag、Last-Modified、Cache-Control 响应头,
支持 304 Not Modified,避免浏览器每次完整重新下载。其余文件走原有逻辑。
2026-05-24 11:53:46 +08:00
augushong
577ee6b974 feat(debug): 报错页面增加手机端适配,工具栏可折叠,修复原生布局溢出问题 2026-05-24 10:09:27 +08:00
augushong
7312db717c fix(debug): 修复预览不实时更新、出错位置不生效、中文Unicode转义等问题,预览改为右侧弹出面板,增加字数统计 2026-05-24 09:32:32 +08:00
augushong
4668865b4f fix(debug): 复选框变更时自动保存状态到localStorage 2026-05-24 09:03:02 +08:00
augushong
e263d172cd fix(debug): 修复Markdown中文输出为Unicode转义的问题 2026-05-24 08:59:16 +08:00
augushong
0225e65975 feat(debug): 报错页面增加AI友好格式和可配置一键复制功能 2026-05-24 08:55:23 +08:00
augushong
218810a7db refactor: 迁移根目录 docker/ 到 source/docker/,更新所有路径引用
- 将 docker/{nginx.conf,run.sh,zz-phprun.ini,zz-phpfpm.conf} 移动到 source/docker/
- 更新所有 Dockerfile 中 /var/www/html/docker/ -> /var/www/html/source/docker/
- 更新 stack.json managed_files 路径前缀
- 重组 stack 模式目录结构 docker/ -> source/docker/
- 更新 source/README.md 目录描述
- 更新 AdminUpdateServiceBase.php 可选文件前缀
2026-05-12 23:13:47 +08:00
augushong
81706debbb fix(upload): 修复云存储上传失败时静默返回空save_name的问题 2026-05-11 21:23:00 +08:00
augushong
1c99e74c2e docs( docker-compose ): 注释掉docker-compose的name配置项
补充说明默认使用项目目录名作为项目名,仅在同名冲突时才需要手动配置name
2026-05-11 20:46:36 +08:00
augushong
a024a215fb chore(docker-dev): 修改日志通道为debug_mysql
更新docker开发环境的日志输出渠道配置,将日志从文件输出改为debug_mysql渠道
2026-05-11 20:44:44 +08:00
augushong
9a3442d7f5 feat: 更新版本至 v2.1.4 并同步更新日志
- 新增支持更新到 ulthon_admin 的 master 分支功能
- 修复目录忽略逻辑的前缀匹配误命中问题
- 更新 source 目录结构及相关文档说明
- 优化持续集成配置,避免覆盖现有 .env 文件
- 从 Git 跟踪中移除 .sisyphus 目录
v2.1.4
2026-05-07 23:00:49 +08:00
augushong
37c8142721 feat(update): 支持更新到 ulthon_admin 的 master 分支
新增 `--update-master` 选项,允许用户选择更新到远程仓库的 master 分支,而非默认的最新标签版本。这为需要最新开发版代码的场景提供了灵活性。
2026-05-07 22:59:19 +08:00
augushong
2663bf4a5a docs: 更新 source 目录结构说明与相关文档
- 在 source 下新增 docs、projects、attachments 目录并添加 .gitkeep 占位文件
- 更新 source/README.md,明确 source 目录用于存放主工程外的配套内容,并详细说明新增子目录用途
- 同步更新 AGENTS.md 中的相关描述,保持文档一致性
2026-05-07 22:36:29 +08:00
augushong
8b45a8818b ci: 避免覆盖现有 .env 文件并设置 IS_DEMO 默认值
在部署工作流中,现在会先检查 .env 文件是否存在。如果文件已存在,则跳过生成步骤以避免覆盖现有配置。
同时,在从 .example.env 生成新 .env 文件时,会默认将 IS_DEMO 设置为 true。
2026-05-06 21:18:41 +08:00
augushong
94d5bf5ce6 chore: 从 Git 跟踪中移除 .sisyphus 目录 2026-05-06 20:57:53 +08:00
augushong
718034a7b4 fix(update): 修复目录忽略逻辑的前缀匹配误命中问题
isIgnoredPath 和 testIsOptionalFiles 方法使用 str_starts_with 做前缀匹配,
导致 .gitea 被 .git 规则误跳过,.gitignore/.gitattributes 同样受影响。
改为精确目录名匹配: ===  || str_starts_with(,  . '/')
2026-05-06 20:55:17 +08:00
augushong
703ec2df8f docs: 补充 source 子工程规则说明
明确 source 下各子工程可拥有独立的 AGENTS.md 文件,其规则优先级高于根目录的 AGENTS.md。
2026-05-06 20:30:28 +08:00
augushong
42b31202c6 docs(skills): 更新方案定义技能文档的编写规范
- 将“编写建议”标题改为“编写规范”
- 明确时间字段统一使用 int 类型存储 Unix 时间戳
- 说明软删除字段的自动机制
- 调整编号顺序使规范更清晰
2026-05-06 20:25:34 +08:00
augushong
11101e338d chore: 发布新版本 v2.1.3 2026-05-06 20:08:27 +08:00
augushong
c7b6865458 docs: 重构智能体规范文档并新增项目业务总览模板
- 将业务侧增量规则记录从 `.agents/AGENTS.md` 迁移至 `.agents/PROJECT.md` 的「增量规则记录」章节
- 新增 `.agents/PROJECT.md` 作为项目业务总览模板,包含项目定位、核心模块等结构化章节
- 更新根目录 `AGENTS.md` 中的引用与说明,明确 `.agents/PROJECT.md` 的用途
- 为技能文件添加命名约定说明(ulthon- 与 project- 前缀)
2026-05-06 20:07:51 +08:00
augushong
8ed88c99b5 docs: 更新AGENTS.md文档结构和内容
- 调整文档结构,将“开发规范与标准流程”改为指向具体表格和技能文件
- 删除已过时或冗余的后端、接口、风格等规则说明
- 保持核心项目规则不变,使文档更聚焦于当前实际工作流程
2026-05-06 19:49:04 +08:00
augushong
c8f606e809 docs: 移除过时的技能目录同步说明
更新 AGENTS.md 文档,删除关于 `.trae/skills/` 目录是镜像目录的说明,因为该同步关系已不再维护或不再相关。
2026-05-06 19:45:33 +08:00
augushong
167dfe110e docs(AGENTS): 更新调试与验证指南并移除冗余技能文档
- 将调试与验证部分简化为优先使用框架内置命令行工具
- 删除已整合的 CLI 命令参考技能文档,避免信息冗余
2026-05-06 19:41:23 +08:00
augushong
748307e826 chore(docker): 将默认服务端口从80更改为8000
更新所有Dockerfile、nginx配置、docker-compose文件和README中的端口引用,统一使用8000端口以避免与系统常用端口的冲突
2026-05-06 19:37:36 +08:00
augushong
e44efb33e0 docs(agents): 重构开发流程文档,优化结构并增加详细指引
- 将 AGENTS.md 中的标准开发流程从步骤列表重构为表格形式,并链接到具体技能文件
- 重写 ulthon-scheme-curd-workflow 技能文档,明确区分首次生成和已有业务代码时的安全重新生成流程
- 新增业务定制、验证交付等详细章节,提供完整的检查清单和命令行验证示例
2026-05-06 19:25:45 +08:00
augushong
8b0a59c880 chore: 发布新版本 v2.1.2 2026-05-06 19:08:28 +08:00
augushong
386678fc9d ci: 移除工作流中调试变量的硬编码设置
All checks were successful
build-and-deploy / 直传代码并部署到 Host15 (push) Successful in 1m29s
移除环境变量 APP_DEBUG_VALUE 和 DB_DEBUG_VALUE 的定义及其在 awk 脚本中的处理逻辑。
这些调试设置不应在部署工作流中硬编码,而应由环境配置文件或更灵活的机制管理。
2026-05-03 21:25:54 +08:00