From b10f84c7e4a60e053c8ac21fe8430fb9790b4137 Mon Sep 17 00:00:00 2001 From: vitya Date: Tue, 16 Jun 2026 19:14:34 +0300 Subject: [PATCH] feat(factory): register agents-task-runner standing-duty module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit poller-service-deploy-via-factory (fork 1). New optional module `agents-task-runner` — the standing-duty stack (task-runner + watchdog + appeals-inbox) installed as OS-native services by the L2 setup skill. - creates: setup_skill setup-agents-task-runner - forward-looking `service:` block (run_as: user + 3 processes + health_check) for factory L1 Go-CLI; L0b bootstrap.ps1 ignores extra module fields - nested processes use `- name:` not `- id:` so the bootstrap regex parser doesn't mis-ingest them as phantom modules - factory_version 0.3.0 -> 0.4.0 (MINOR: new module) Co-Authored-By: Claude Opus 4.8 (1M context) --- factory.yaml | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/factory.yaml b/factory.yaml index 530ca28..a19f043 100644 --- a/factory.yaml +++ b/factory.yaml @@ -8,7 +8,7 @@ # {home} — user home dir (~) schema_version: "1" -factory_version: "0.3.0" +factory_version: "0.4.0" # ── Core (always installed) ────────────────────────────────────────────────── # @@ -137,3 +137,36 @@ modules: - type: local_clone repo: "{git_host}/{git_org}/.admin" path: "{projects_dir}/.admin" + + - id: agents-task-runner + optional: true + description: "Standing-duty stack — task-runner + watchdog + appeals-inbox as OS-native services" + # Host node processes (mongo + reconciler stay in docker, own restart policy). Installed as + # platform-native services (systemd / launchd / winsw) by the L2 setup skill — no node window, + # OS-supervised autostart + crash-restart. Scope is runtime config (poller-scope.json), + # disarmed by default. Service templates: OpeItcLoc03/common @ lib/agents-task-runner/service/. + creates: + - type: setup_skill + skill: setup-agents-task-runner + # Forward-looking for factory L1 (Go-CLI, build-pending): the three supervised processes and + # their health probes. bootstrap.ps1 (L0b) reads only `- id:` for modules and ignores the rest; + # the L2 setup skill performs the actual install + verification. + service: + run_as: user # NOT root / LocalSystem — reads ~/.config, ~/.claude, git creds; spawns claude + # NOTE: nested keys use `- name:` (not `- id:`) on purpose — the L0b bootstrap.ps1 manifest + # parser treats every `- id:` line as a top-level component/module item and would otherwise + # mis-ingest these processes as phantom modules. `- name:` is invisible to that regex. + processes: + - name: agents-task-runner + health_check: + type: http + url: "http://localhost:3000" + - name: agents-task-runner-watchdog + health_check: + type: log_fresh + path: "watchdog.log" + max_age_s: 120 + - name: agents-task-runner-appeals-inbox + health_check: + type: http + url: "http://127.0.0.1:4317"