augushong
|
8eaa672ed6
|
feat(nginx-log): NginxLogClean 定时任务 + timer config 注册(完成 3 个 nginx 任务)
|
2026-07-28 06:00:15 +08:00 |
|
augushong
|
13b1313e92
|
feat(nginx-log): NginxLogImport 定时任务 + timer config 注册(Base/App 双层)
|
2026-07-28 05:48:46 +08:00 |
|
augushong
|
ceb73c750a
|
feat(nginx-log): NginxLogAggregator 聚合 service(Base/App 双层,delete-then-insert 幂等)
|
2026-07-28 00:52:51 +08:00 |
|
augushong
|
9fe55f81bf
|
feat(nginx-log): NginxLogReader 增量读取 service(Base/App 双层,含轮转检测)
|
2026-07-28 00:39:11 +08:00 |
|
augushong
|
7d707c2150
|
feat(nginx-log): NginxLogParser 解析器 service(Base/App 双层)
|
2026-07-28 00:38:25 +08:00 |
|
augushong
|
c4b72913df
|
feat(nginx-log): .example.env 增加 [NGINX_LOG] 配置节(默认关闭)
|
2026-07-28 00:24:39 +08:00 |
|
augushong
|
ce191adfd8
|
feat(nginx-log): 4 个 stack 模板增加 log_format 与 access_log 配置(Docker 开箱即用)
|
2026-07-28 00:24:26 +08:00 |
|
augushong
|
3405f8de60
|
feat(nginx-log): adminInitData 增加 nginx_log 默认配置(保留策略/topN/静态排除)
|
2026-07-28 00:18:56 +08:00 |
|
augushong
|
0d19881a22
|
feat(nginx-log): 新增 6 张表 phinx migration + Scheme + model
|
2026-07-28 00:03:49 +08:00 |
|
augushong
|
f48e0947cb
|
docs(timer): 技能文档补充 Docker 模式自动启动说明
新增 Docker 部署章节:server 模式自动启动 timer(nohup + --local --quiet),多节点天然隔离(runtime/node_id.lock 独立)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-26 09:53:45 +08:00 |
|
augushong
|
97eb8ca99a
|
fix(timer): timer_log 列表页补全刷新按钮与事件监听方法修正
toolbar 从 [] 改为 ['refresh'](B 类只读页面保留刷新),ua.table.on 修正为 layui.table.on。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-26 09:53:27 +08:00 |
|
augushong
|
739b536f8d
|
fix(host): Host 控制器禁用手动增删改与按钮配置修正
HostBase 补 add/edit/delete/modify 禁用方法(节点自动注册,不支持手动操作)。_common.js 的 addUrl/editUrl/deleteUrl/exportUrl/modifyUrl 改空字符串。index.js 补 toolbar: ['refresh'](C 类页面,去掉默认的 add/delete/export)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:40:05 +08:00 |
|
augushong
|
908f84ee9f
|
refactor(timer): TimerLog 控制器迁移到 Base 层 + toolbar 与事件监听修正
控制器逻辑移入 extend/base/admin/controller/system/TimerLogBase.php,app 层改为空壳继承。index.js 补 toolbar:[] + defaultToolbar:['filter'](B 类只读页面),修正 ua.table.on → layui.table.on。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:39:53 +08:00 |
|
augushong
|
009647f96f
|
refactor(timer): TimerConfig 控制器与视图迁移到 Base 层
控制器逻辑移入 extend/base/admin/controller/system/TimerConfigBase.php,app 层改为空壳继承。9 个视图文件迁移到 extend/base/admin/view/system/timer_config/。index.js 补 toolbar: ['refresh', 'export'] 声明(C 类页面,去掉默认的 add/delete)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:39:20 +08:00 |
|
augushong
|
1d704fc32c
|
fix(migration): 新增增量 migration 补齐 timer_config 与 system_host 缺失字段
建表 migration(SystemTimerConfig/SystemHost)建表时未含动态管控新增字段(trigger_node_id/last_trigger_time/concurrency/is_master),全新安装走 migrate:run 会缺字段。新增 ALTER migration 增量补齐,保证全新安装表结构完整。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:22:47 +08:00 |
|
augushong
|
1b0be9a29b
|
docs(timer): 定时器动态管控技能文档补充四章节
新增并发数动态调整、手动触发定向、多节点协调、clamp 有效域钳制四章节,含 12 个示例对照与 4 个坑位说明。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:58:48 +08:00 |
|
augushong
|
12fe271ce0
|
feat(timer): 编辑页并发数配置表单
edit 表单放行 concurrency 字段,空值=继承代码默认写 NULL,正整数=覆盖。前端联动提示语义。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:58:20 +08:00 |
|
augushong
|
41a0f99735
|
feat(timer): 列表页节点视角下拉与归属可视化
新增节点视角下拉(全局/指定节点),calcOwnership 计算任务归属,触发操作联动节点选择器定向 trigger_node_id,并发列双通道显示(默认/覆盖值)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:58:07 +08:00 |
|
augushong
|
f13384403a
|
feat(timer): 后台触发/编辑/节点列表控制器改造
trigger 定向 trigger_node_id 必填穿透 status;edit/modify 改 concurrency 后 Cache::inc 递增脏标记触发立即 reload(D18);hostList 返回在线节点;normalizeConcurrency 归一化入库值。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:57:56 +08:00 |
|
augushong
|
3db3f7de78
|
feat(timer): syncConfig concurrency 不变量与控制器 cap 防御
TimerServiceBase syncConfig 不覆盖 DB concurrency(NULL=继承代码默认)。TimerControllerBase cap 改 >= 语义,放行 concurrency_id < cap 的 0-indexed 分片。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:57:39 +08:00 |
|
augushong
|
f478ae0e4e
|
feat(timer): runLoop 热加载并发实例与运行时配置参数
TimerBase 实现 shouldExecuteTask 手动触发原子消费、reloadRequestList 合并式扩缩容、runLoop 脏标记检测+定时兜底+有效域钳制+drain 优雅缩容+checkTriggerTtl 超时复位。config/timer.php 新增 trigger_ttl/force_reload_interval/drain_max_lifetime 三参数。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:57:25 +08:00 |
|
augushong
|
236a343fa9
|
feat(timer): 新增并发数/触发节点/触发时间三字段及幂等分发
Scheme 定义 concurrency(nullable)/trigger_node_id/last_trigger_time 三字段,Model 声明属性,v2.3.0 分发代码幂等 ALTER 保证升级自动同步。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:57:14 +08:00 |
|
augushong
|
8dce4ab48a
|
docs(deploy): 补充多环境 .env 管理约定
各环境配置文件(.env.test/.env.prod/.env.demo)放在仓库根目录,
部署时流水线将目标文件覆盖为 .env,代码完全一样只有 .env 不同
|
2026-07-23 22:22:52 +08:00 |
|
augushong
|
4ebcea0669
|
chore(stack): 删除 docker-dev/docker-dev-sync 残留的 .docker-dev.env
B-route 下 .env 只在仓库根,bind mount 容器直接读根目录 .env,
模式目录不再需要独立的 env 文件
|
2026-07-23 22:17:18 +08:00 |
|
augushong
|
3de1b3c058
|
docs(deploy): 记录义务补充非默认端口要求
开发者修改了框架模板默认端口(HTTP 8000/MySQL 13306/Redis 16379 等)
时必须记录,否则智能体调试(如 tools:http:call)会用默认端口连接失败
|
2026-07-23 22:07:57 +08:00 |
|
augushong
|
1620af9ff2
|
refactor(stack): 删除 stack.json,README 改为模板使用指南
- 删除 source/stack/stack.json(与 README 模式表重复,无实际用途)
- README 新增使用方式说明:可直接用,推荐复制后自定义
(admin:update 只更新原始模板,不覆盖开发者副本)
- 同步清理 ulthon-deploy-environment.md 和
ulthon-update-workflow SKILL.md 中对 stack.json 的引用
- ulthon-deploy-environment.md 补充记录义务规则:
智能体应确认 project-dev-runtime-deploy.md 是否已记录运行方式,
必须包含命令执行方式(容器内 vs 宿主机)
|
2026-07-23 22:01:38 +08:00 |
|
augushong
|
544604ebff
|
fix(stack): 其余4个模式同步 bind mount 兼容修复
与 docker-dev(commit 5797885)保持一致的修复方案:
- run.sh 改为 SCRIPT_DIR 自动检测脚本所在目录
- Dockerfile ENTRYPOINT/chmod 改为完整路径
/var/www/html/source/stack/<mode>/source/docker/run.sh
- 基础配置(nginx.conf/zz-phprun.ini/zz-phpfpm.conf)复制到各模式目录
- ln -s 改为 ln -sf(防止容器重启时 File exists)
docker-dev-sync 额外保留 sync.sh 调用逻辑(init + watch),
仅路径改为 \/sync.sh
|
2026-07-22 23:40:33 +08:00 |
|
augushong
|
5797885f3d
|
fix(stack): 修复 bind mount 遮蔽 build 期 symlink 导致容器启动失败
B-route 下 build context=仓库根 + bind mount /var/www/html 有两个问题:
1. ENTRYPOINT 引用 /var/www/html/source/docker/run.sh 在运行期找不到:
build 期的 symlink 被 bind mount 完全覆盖,容器看到的是宿主机
仓库根的 source/docker/(只有 nginx.conf/zz-phprun.ini/zz-phpfpm.conf,
没有 run.sh)
2. 模式目录 source/docker/ 不自包含:
只有 run.sh/zzz-dev.ini/zzz-xdebug.ini,缺基础配置
修复(docker-dev 模式):
- run.sh 改为用 SCRIPT_DIR 自动检测脚本所在目录
- Dockerfile ENTRYPOINT/chmod 改为完整路径
/var/www/html/source/stack/docker-dev/source/docker/run.sh
- 基础配置(nginx.conf/zz-phprun.ini/zz-phpfpm.conf)复制到模式目录
使其自包含
验证:docker compose build 通过,up 容器稳定运行,
nginx + PHP-FPM 启动成功,ThinkPHP CLI 正常(v8.1.4)
|
2026-07-22 23:29:50 +08:00 |
|
augushong
|
6bc661117c
|
fix(stack): 修复 B-route 下所有 Dockerfile COPY 路径与 build context 不匹配
B-route 把 build context 改为仓库根后,Dockerfile 中的 COPY source/docker/...
和 chmod/ENTRYPOINT 引用 /var/www/html/source/docker/ 全部失效。
根因:
- 仓库根有全局 source/docker/(仅 nginx.conf/zz-phprun.ini/zz-phpfpm.conf 基础配置)
- 模式专属配置(run.sh、zzz-dev.ini、zzz-xdebug.ini 等)在 source/stack/<mode>/source/docker/
- COPY . 把全局 source/docker/ 复制进容器,但缺少模式专属文件
- 旧 COPY source/docker/zzz-dev.ini 在 context=仓库根时找不到文件
修复(所有 5 个模式统一):
- 每个 Dockerfile 在 COPY . 后加 rm -rf + ln -sf symlink,
让 /var/www/html/source/docker 指向模式专属配置目录
- COPY ini 文件路径改为完整的 source/stack/<mode>/source/docker/...
- .dockerignore 去掉 source/stack/ 排除(配置文件仅几 KB,
但 COPY 需要这些文件在 build context 中)
- .dockerignore 加 docker-dev/docker-dev-data 排除(旧数据残留)
|
2026-07-22 23:18:16 +08:00 |
|
augushong
|
0adc497818
|
docs(stack): restore docker-dev-sync as independent mode in docs
|
2026-07-22 22:47:46 +08:00 |
|
augushong
|
0a04181d12
|
revert(stack): un-merge docker-dev-sync, restore as independent B-route directory
docker-dev 清理合并残留:去掉 rsync/mkdir/chmod、删 ulthon_admin_sync 服务、
删 .env(COMPOSE_PROFILES)、删 sync.sh、删 .dockerignore、去 SYNC_INTERVAL。
docker-dev-sync 恢复独立目录并 B-route 化(context: ../../..)。
两个模式各自独立、各自完整。
|
2026-07-22 22:42:58 +08:00 |
|
augushong
|
be6fd9491b
|
docs(stack): 新增迁移说明与 CHANGELOG 记录破坏性命令移除
|
2026-07-22 01:32:48 +08:00 |
|
augushong
|
28576def0a
|
feat(stack): 合并 docker-dev-sync 到 docker-dev 配置,统一 Dockerfile
|
2026-07-22 01:27:52 +08:00 |
|
augushong
|
bed965a9b1
|
fix(stack): 修正构建上下文路径层级 ../../.. 并将 base-build 重命名为 author
|
2026-07-22 01:16:24 +08:00 |
|
augushong
|
62e72af93d
|
feat(stack): B 路线构建上下文与卷配置方案(docker-serve/docker-dev/full)
|
2026-07-22 01:10:15 +08:00 |
|
augushong
|
560e0f6a5e
|
docs(update-workflow): 以 B 路线检测替代 admin:stack:mode
|
2026-07-22 01:05:23 +08:00 |
|
augushong
|
bb602dccda
|
chore(stack): 精简 stack.json 为纯元数据(schema v2)
|
2026-07-22 01:02:57 +08:00 |
|
augushong
|
50305dd29b
|
ci(stack): 为 B 路线重写工作流并同步默认配置
|
2026-07-22 00:58:17 +08:00 |
|
augushong
|
9f5ffc34c4
|
docs(stack): 重写框架规则、stack README 与项目模板提示
|
2026-07-22 00:56:43 +08:00 |
|
augushong
|
387d89c596
|
breaking(stack): 彻底移除 stack:mode 命令(含 app/extend/base/注册)
|
2026-07-22 00:50:56 +08:00 |
|
augushong
|
600ee5b085
|
refactor(agents): 删除 tools:agent:publish 命令,补全 helper.php 函数覆盖机制,修正多处文档 bug
- 删除 tools:agent:publish 整套(不再兼容多套 IDE,只保留 .agents 目录)
- helper.php 全部 27 个全局函数加 if (!function_exists()) 包裹,项目侧可在 app/common.php 定义同名函数覆盖
- ulthon-file-override-mechanism.md 新增全局函数覆盖章节
- AGENTS.md 删除智能体指导章节,PHP 8+ 改为 8.0+,MySQL 8+ 改为 5.7+
- AGENTS.md 项目结构树补全 tests/、extend/think/、source/ 子项
- README.md PHP 版本统一为 8.0+
- ulthon-base-app-architecture SKILL 路径补 admin/service/ 段
- ulthon-tools-http-call SKILL 补 --page-data 参数
- ulthon-naming-convention 补元数据头
- ulthon-update-workflow 统一 extend/think/ 归类
|
2026-07-21 19:35:28 +08:00 |
|
augushong
|
4a4155070d
|
docs(agents): 新增控制器响应陷阱与 sysconfig 机制规则
- ulthon-controller-response-throw 规则:揭露 success/error/result/redirect 都是 throw HttpResponseException 的陷阱,含两种正确范式(try 外 / 放行 HttpResponseException)与 grep 自查方法
- ulthon-system-config 规则:sysconfig 完整机制(存储/读取/保存/视图扩展),含新增配置项两种方式(加入已有组 / 新建独立 Tab)
- AGENTS.md 索引同步:零散规则表 +2 行,工作流列表 +2 行(含上一 commit 的技能)
|
2026-07-19 12:03:22 +08:00 |
|
augushong
|
98dd244e61
|
docs(agents): 新增后台表格机制与页面验证技能
- ulthon-admin-table 技能:后台表格完整指南(核心机制/init/cols/内置渲染器/按钮系统/搜索系统/后端配套/常见模式与排错/实测代码引用表),含页面分类标准 A/B/C/D 与项目2 实战经验
- ulthon-page-qa 技能:AI 自测页面验证 6 步 checklist(HTML 冒烟→API→Page Data→浏览器→搜索→分辨率),零项目依赖原则,三模式验证策略
|
2026-07-19 12:00:21 +08:00 |
|
augushong
|
e40d497515
|
fix(curd): 修正关联表 onlyFields 键名拼写错误
- CurdBase 注释解析只识别 onlyFields(正确拼写),不再支持历史错误拼写 onlyFileds
- BuildCurdServiceBase 内部局部变量 onlyShowFileds 改为 onlyShowFields(按位置传参,外部 API 不变)
- 同步文档(ulthon-database-design 已删除,ulthon-scheme-definition 技能已使用正确拼写)
|
2026-07-19 09:07:49 +08:00 |
|
augushong
|
e392db007a
|
docs(agents): 落实按主题单一文档原则,合并规则到对应技能
- AGENTS.md 代码分层铁律精简为入口摘要,链接指向技能详情
- 合并 ulthon-timer-multi-node 规则到 ulthon-timer 技能(多节点协调章节)
- 合并 ulthon-database-design 规则到 ulthon-scheme-definition 技能(含字段约定、组件类型)
- 合并 ulthon-testing 规则到 ulthon-testing 技能(含设计哲学、决策树、测试约束)
- rules-manager 边界原则从规则/技能二分改为按主题单一文档
- AGENTS.md 通用基础规范中表结构规范链接改向技能
- 工作流索引中三个技能描述扩充(明确承载原规则内容)
|
2026-07-19 09:07:42 +08:00 |
|
augushong
|
1f91abe9d2
|
docs(agents): 修正规则与技能文档的索引缺漏、错误引用与表述冲突
- AGENTS.md 工作流索引:补充 ulthon-update-workflow 与 ulthon-rules-manager,移除不存在的 ulthon-tools-log
- ulthon-naming-convention.md:删除对 ulthon-source-directory.md 的错误引用,明确框架应用目录与控制器子目录命名规范
- ulthon-database-design.md / ulthon-scheme-definition:统一关联表 onlyFileds 键名说明,修正示例字段拼写
- ulthon-scheme-curd-workflow.md:CURD 表名参数表述与参数表对齐
- ulthon-permission-cli.md:章节改写为节点分配原则,去除变更痕迹叙事
- README.md:文档主页 URL 与 AGENTS.md 对齐
|
2026-07-19 00:44:41 +08:00 |
|
augushong
|
46f0d62852
|
docs(rules): 新增文件级覆盖机制规则并修正索引职责互斥
- 新增 ulthon-file-override-mechanism.md:阐述 app/ 覆盖 extend/base/ 的三类机制(视图模板、include 标签、app_file_path)与不支持覆盖的反例清单
- ulthon-base-app-architecture:升格原孤立描述为独立小节"5. 文件级覆盖机制"
- ulthon-timer:在 app_file_path 覆盖说明处增加规则引用
- AGENTS.md:登记新规则到框架内置规则索引
- ulthon-rules-manager:修订索引职责(AGENTS.md 仅 ulthon-、PROJECT.md 仅 project-,互斥不重复维护);索引格式从 4 列改为 3 列与项目实际一致;维护规则补充对称约束;泛化"迁移现有内容"章节
|
2026-07-19 00:30:05 +08:00 |
|
augushong
|
073172473b
|
chore: gitignore 忽略 phpunit 测试缓存目录
tests/.phpunit.cache/ 是 phpunit 运行产生的测试结果缓存(phpunit.xml.dist cacheDirectory 指向),不应纳入版本控制。
|
2026-07-18 23:57:55 +08:00 |
|
augushong
|
37cb8291f8
|
feat(test): 引入测试规则文档与参数化测试库初始化脚本
对齐 wkbox 衍生项目的测试规则体系,剥离业务特定内容后移植到框架:
- 规则 .agents/rules/ulthon-testing.md(设计哲学/决策树/4层模型/安全规范/fixture原则)
- 技能 .agents/skills/ulthon-testing(运行/编写/模板/决策/回归验证)
- 参数化建库脚本 tests/setup_test_db.{php,ps1,sh} + README
- AGENTS.md 索引补充
与 wkbox 差异:测试库参数化(复用 .env 连接,database=env+'_test'),不硬编码 Docker;删去 canBind Oracle 业务约束与具体 fixture 工厂,业务工厂由衍生项目自行实现。
|
2026-07-18 23:56:32 +08:00 |
|
augushong
|
ce8a0c795b
|
docs: 更新 agent 规则并新增项目约束文档
|
2026-07-18 23:35:04 +08:00 |
|