Skip to content

crons: support HOST launchd in agents-from-specs and CronExplorer - #1354

Merged
gHashTag merged 1 commit into
mainfrom
feat/crons-host-launchd
Oct 4, 2026
Merged

gHashTag merged 1 commit into
mainfrom
feat/crons-host-launchd

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Schema change from gHashTag/t27#6036: HOST = "launchd" for jobs on the owner's Mac.

  • scripts/agents-from-specs.mjs: launchd in HOSTS; a launchd card has exactly one of INTERVAL_MS and SCHEDULE; it is not warned as missing from public/crons/manifest.json (that manifest scans repos, not the Mac); run-now target is disabled/launchd.
  • UI: host label and run-now reason in CronExplorer / AgentSpecPanel; types widened.
  • Test: new case in agents-from-specs.test.mjs (58/58 pass). Verified locally with the 17 cards from t27#6036 copied in: generator clean, 50 crons.

Vendored cards arrive with the next sync-t27-specs.mjs after t27#6036 merges.

Refs gHashTag/t27#6014

🤖 Generated with Claude Code

{
  "version": 1,
  "head_sha": "0cf7248a7b250f13b6a450a16857fea2a5557621",
  "summary": "The cron catalog learns a fifth host, launchd, so jobs that run on the owner's Mac can be described by t27 cron cards and shown in CronExplorer without being flagged as missing.",
  "changes": [
    "agents-from-specs.mjs adds launchd to HOSTS and requires a launchd card to carry exactly one of SCHEDULE and INTERVAL_MS.",
    "A launchd card is no longer warned for being absent from public/crons/manifest.json, since that manifest scans repositories and not the Mac.",
    "runNowTarget returns a disabled target with reason launchd, and AgentSpecPanel explains in English and Russian that there is no remote handle.",
    "CronHostKind, CronKind and RunNowTarget types are widened to include launchd, and CronExplorer gets a Mac (launchd) host label in both languages.",
    "agents-from-specs.test.mjs gains a case covering a valid launchd card with SCHEDULE, one with INTERVAL_MS, and the rejection when both are set."
  ],
  "tests": [
    {
      "command": "GitHub Actions: Website checks (typecheck ratchet, spec generators, node tests)",
      "status": "passed",
      "result": "The website checks job passed on this head; no file gained type errors.",
      "evidence": "https://github.com/gHashTag/trinity/actions/runs/37199590274/job/111428344044"
    },
    {
      "command": "GitHub Actions: S3AI Brain CI on the pull_request event",
      "status": "passed",
      "result": "The pull_request Brain CI run passed build, unit, integration and stress jobs.",
      "evidence": "https://github.com/gHashTag/trinity/actions/runs/37199590182"
    },
    {
      "command": "GitHub Actions: S3AI Brain CI on the push event",
      "status": "failed",
      "result": "The push-event run failed zig unit tests in basal-ganglia, hslm, intraparietal, locus-coeruleus and reticular-formation; this diff touches no zig.",
      "evidence": "https://github.com/gHashTag/trinity/actions/runs/37199515671"
    },
    {
      "command": "GitHub Actions: Build & Test, Code Format Validation, Validate VIBEE Codegen",
      "status": "passed",
      "result": "Build, format and codegen validation jobs passed on this head commit.",
      "evidence": "https://github.com/gHashTag/trinity/actions/runs/37199590222 and https://github.com/gHashTag/trinity/actions/runs/37199590203"
    },
    {
      "command": "node --test apps/website/scripts/agents-from-specs.test.mjs",
      "status": "not_run",
      "result": "The new launchd test case did not appear in any CI log for this head.",
      "evidence": "Searched the Website checks log of run 37199590274 for the test name; no match."
    }
  ],
  "limitations": [
    "The new agents-from-specs test was reported passing locally by the author (58 of 58) but was not seen running in CI for this head.",
    "No launchd cards are vendored yet; they arrive with the next sync-t27-specs run after gHashTag/t27#6036 merges, so the site shows nothing new until then.",
    "A launchd job has no run-now button and no remote status; the page can only describe it from its card."
  ],
  "tags": [
    "crons",
    "launchd",
    "website"
  ],
  "blog": {
    "title": "Cron cards for jobs that live on the owner's Mac",
    "summary": "The trinity site's cron catalog only knew GitHub Actions, Inngest, Railway and in-process timers. It now accepts launchd as a host, so Mac jobs can be described in t27 cards and shown honestly on CronExplorer.",
    "outline": [
      "Several recurring jobs run under launchd on the owner's Mac, and gHashTag/t27#6036 introduced HOST equals launchd for their cron cards, which the site generator rejected.",
      "The generator now accepts launchd and enforces that a card carries exactly one of SCHEDULE for calendar jobs or INTERVAL_MS for StartInterval jobs, never both and never neither.",
      "Because the code manifest is built by scanning repositories, a Mac job can never appear in it, so launchd cards are no longer marked warn for being absent from that manifest.",
      "The run-now control is disabled for launchd with a plain explanation in English and Russian, since the site has no remote handle on a process running on a personal machine.",
      "Types in agentSpecs and cronsLoader are widened and CronExplorer gains a Mac launchd label, with one new generator test covering both valid shapes and the rejected combination."
    ]
  }
}

…e page

agents-from-specs accepts HOST launchd with exactly one of INTERVAL_MS
(StartInterval) or SCHEDULE (StartCalendarInterval / crontab), does not warn a
launchd card for being absent from the repo-scanning code manifest, and gives it
a disabled run-now target. CronExplorer and AgentSpecPanel label it.

Refs gHashTag/t27#6014

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

X Brain Health Check

Score: 100.0/100
Status: 🟢 HEALTHY
Threshold: 80/100

X Brain is above merge threshold

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

🧪 Brain Stress Test Results

Tests: 261/261 passed, 0 leaked
Status: 🟢 PASS
Gate: every test in zig build test-brain-stress passes and none leaks

@gHashTag
gHashTag merged commit 0788879 into main Oct 4, 2026
35 of 43 checks passed
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant