qoderwake支持三种自动构建触发方式:一、基于qt的qfilesystemwatcher本地监听,延迟低;二、linux专用inotify+webhook桥接方案,适合无gui环境;三、复用防腐治理模块进行哈希/时间戳比对,高安全合规。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望QoderWake在目标目录内容发生增删改时自动启动构建流程,但发现变更未被识别或构建未触发,则可能是由于文件系统监听机制未启用、路径配置不正确或事件到工作流的绑定缺失。以下是实现QoderWake文件监控并触发自动构建的多种技术路径:
一、基于QFileSystemWatcher集成的本地目录监听
该方式利用Qt框架原生的QFileSystemWatcher类,在QoderWake运行环境中嵌入轻量级跨平台文件系统监听能力,直接捕获目录层级的实时变化信号,并映射至构建任务触发器。此方案不依赖外部服务,延迟低于200ms,适用于开发机、CI边缘节点等可信本地环境。
1、确认QoderWake运行环境已加载Qt5.15+或Qt6.2+运行时库,执行qoderwake --check-deps验证QFileSystemWatcher可用性。
2、在QoderWake配置目录config/integrations/下新建fs_watcher.yaml,填入以下内容:
watcher_type: qfilesystem
paths:
- /home/user/project/src
- /home/user/project/config
events:
- directoryChanged
- fileChanged
debounce_ms: 300
3、在QoderWake工作流编排器中,新建一个“FS变更触发”类型节点,将其source字段指向fs_watcher.yaml中定义的路径组。
4、将该触发节点输出连接至“执行Shell构建脚本”技能,脚本路径设为./scripts/build.sh,确保其具备可执行权限。
二、通过系统inotify+Webhook桥接的Linux专用方案
该方式绕过Qt依赖,直接调用Linux内核inotify机制监听目录,由独立守护进程将inotify事件转换为标准HTTP Webhook推送给QoderWake内置接收端点,适合无GUI、最小化镜像部署场景,支持百万级文件目录的稳定监听。
1、在宿主机安装inotify-tools:sudo apt-get install inotify-tools(Ubuntu/Debian)或sudo yum install inotify-tools(CentOS/RHEL)。
2、创建监听脚本monitor_dir.sh,内容如下:
#!/bin/bash
DIR="/home/user/project"
while inotifywait -e create,delete,modify,move $DIR; do
代码编辑 CLI 工具集合:Cursor CLI(agent)和 Qoder CLI(qodercli),用于代码修改、重构、Code Review 及自动化代码任务。
curl -X POST https://localhost:8080/v1/webhook/inotify-trigger \
-H "Content-Type: application/json" \
-d '{"event":"dir_modified","target":"'$DIR'","timestamp":'$(date +%s)'}
done
3、赋予执行权限并后台运行:chmod +x monitor_dir.sh && nohup ./monitor_dir.sh > /dev/null 2>&1 &
4、在QoderWake控制台「触发管理」中创建「API回调触发」,Webhook URL设为https://localhost:8080/v1/webhook/inotify-trigger,启用JSON Schema校验,要求字段包含event与target。
5、将该触发器绑定至预置的“Clean-Build-Deploy”工作流,启用自动执行模式。
三、启用QoderWake内置防腐治理规则联动监控
该方式不新增监听组件,而是复用QoderWake已激活的防腐治理(Anti-Rot Governance)模块,将目录时间戳、文件哈希快照纳入长期记忆比对周期,当检测到监控路径的mtime或SHA256摘要发生变化时,自动触发构建。适用于高安全合规场景,所有操作均在权限沙盒内完成,无需开放网络或系统调用。
1、进入config/governance/目录,编辑custom_rules.yaml,在memory节点下追加watch_paths区块:
watch_paths:
- path: "/home/user/project/package.json"
type: "file_hash"
hash_algo: "sha256"
- path: "/home/user/project/src"
type: "dir_mtime"
recursive: true
2、确保config/core.yaml中governance_rule_path已指向该custom_rules.yaml文件。
3、执行qoderwakectl reload-governance热加载规则。
4、在QoderWake「技能市场」中启用“Governance-Driven Build Trigger”技能,设置触发阈值为“任意watch_path变更即触发”,绑定目标构建流水线。
5、手动修改package.json内容并保存,验证QoderWake日志中是否出现[GOVERNANCE] Path /home/user/project/package.json hash mismatch → triggering build条目。










