Commit Graph

34 Commits

Author SHA1 Message Date
augushong
8faa52ce90 feat(nginx-log): 多节点适配(node_id 全链路 + 全局/按节点聚合 + 节点筛选 + v2.4.0 升级脚本)
- 6 张表加 node_id 字段 + position/stat 改复合唯一键(migration)
- 6 个 Scheme 同步 node_id 注解 + 唯一键
- Reader 带 node_id 参数 + 懒加载接管(getLastPosition 回退查 node_id='')
- Aggregator 全局行(node_id='')+ 按节点循环 insertAggregatesForScope
- Stat 所有查询方法加 where node_id 条件
- Dashboard 控制器/视图加节点筛选下拉框 + AJAX 带 node_id
- AccessLog 列表加节点列 + 采集进度卡片显示节点信息
- import 定时任务 run_type 改 all(每节点采集自己的日志)
- v2.4.0 升级脚本追加 ALTER TABLE(幂等 check-then-alter)
- 菜单调整:去掉 Nginx 顶级菜单 + 读取位置管理,改为系统管理下挂两个子菜单
- ulthon-timer 文档补充 run_type=all 多节点部署注意事项
2026-08-08 10:33:20 +08:00
augushong
f1a2e8fd5d fix(nginx-log): service 文件加 Service 后缀(命名规范合规)
F2 Code quality review 发现:3 个新增 service 未遵守
.agents/rules/ulthon-naming-convention.md 第 19 行规定
(service 模块文件名需带 Service 后缀)。

变更:
- 重命名 6 个文件(3 Base + 3 App):
  NginxLogParser(Base)→NginxLogParserService(Base)
  NginxLogReader(Base)→NginxLogReaderService(Base)
  NginxLogAggregator(Base)→NginxLogAggregatorService(Base)
- 同步类名、use、类型 hint、new 引用
- NginxLogReaderServiceBase 异常消息前缀同步加 Service
- controller Base 引用更新(NginxLogImportBase / NginxLogStatAggregateBase)

验证:
- php -l 全部 8 个文件语法通过
- grep 残留旧名 = 0 结果(24 处引用全部带 Service 后缀)
2026-07-28 06:57:13 +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
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
387d89c596 breaking(stack): 彻底移除 stack:mode 命令(含 app/extend/base/注册) 2026-07-22 00:50:56 +08:00
augushong
ccb7540356 fix(host): 心跳更新失败仅记日志不再重复抛异常
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-07-17 23:33:25 +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
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
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
81706debbb fix(upload): 修复云存储上传失败时静默返回空save_name的问题 2026-05-11 21:23:00 +08:00
augushong
b44fcfd86c feat(stack): 新增 stack 模式管理功能
- 新增 `php think admin:stack:mode` 命令,支持 list/use/current/rollback 操作
- 新增 StackModeService 服务,负责模式切换、备份与回滚逻辑
- 在 source/stack/ 目录下添加 default、full、base-build 三种模式的配置文件
- 更新 UlthonAdminService 以注册新的命令行工具
2026-04-24 23:20:13 +08:00
augushong
8cc08bcb8c feat: 发布智能体版 2026-03-26 20:22:34 +08:00
augushong
6aa176a39a fix(scheme): 改进MySQL表注释获取与对比的可靠性 2026-02-01 00:14:45 +08:00
augushong
e8f58ef322 feat(command): 新增数据库调试命令行工具集 2026-01-26 23:10:10 +08:00
augushong
ee40374732 feat(scheme): 增强 Scheme 与数据库同步机制并添加严格校验 2026-01-12 12:37:37 +08:00
augushong
0522e2f9c3 refactor(DbToSchemeService): 重构字段注解生成逻辑以提高可读性 2026-01-09 21:28:54 +08:00
augushong
8de6b99bb3 feat(scheme): 新增数据库表结构同步方案 2026-01-09 21:08:51 +08:00
augushong
35e7eb9a0e feat: 操作删除文件可直接删除实际文件 2025-08-31 11:34:56 +08:00
augushong
dea794d058 feat: 增加call类型的定时任务; 2025-08-24 14:00:20 +08:00
augushong
4d2a264df1 feat: 优化节点信息存储 2025-08-23 23:24:45 +08:00
augushong
a9d1429000 feat: 增加内置节点注册任务;优化定时器代码结构; 2025-08-23 23:22:52 +08:00
augushong
b1a6b37ee0 feat: 增加主机节点表结构代码 2025-08-23 22:44:47 +08:00
augushong
46722e5a66 feat: 增加主机节点服务类 2025-08-23 22:30:33 +08:00
augushong
63a5cdecf9 fix: 修复自定义权限标识不生效的问题 2025-05-19 11:23:24 +08:00
augushong
c1042ce1c6 feat: 增加动态设置当前账户的权限功能;增加该功能演示效果 2025-04-21 15:54:07 +08:00
augushong
d3e85fa552 feat: 升级权限管理模式 2025-03-20 16:57:05 +08:00
augushong
3baaf4747d 优化手机端表现 2024-11-07 14:32:34 +08:00
augushong
4db4bc6f20 修改超级管理员判断方式 2024-10-17 08:48:08 +08:00
augushong
e6779f4921 增加测试机制;完善DebugMysql日志逻辑;更新debug_log表字段格式;发布新版本 2024-01-03 16:22:01 +08:00
augushong
184dae8185 增加扩展机制定位文件;将common模块实现扩展模式;发布新版本; 2023-09-25 17:07:38 +08:00