sol: cron dispatch functional triage classifier + manifest + machine-checkable CHECK
This commit is contained in:
1 parent
045a9bad24
commit
67f467b2d7
9 files changed
+3731
-1951
No files matched your search
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
# CHECK -- sol: working-tree triage classification 2026-11-05
|
||||
# Independently re-derives the untracked-file classification straight from
|
||||
# disk and compares it against the committed manifest. Exit 0 == PASS.
|
||||
set -u
|
||||
REPO=/root/troupe-standup
|
||||
MANIFEST="$REPO/wizard-work/sol/workingtree-triage-2026-11-05.json"
|
||||
python3 - "$REPO" "$MANIFEST" <<'PY'
|
||||
import json, os, subprocess, sys
|
||||
repo, manifest = sys.argv[1], sys.argv[2]
|
||||
proc = subprocess.run(["git", "ls-files", "--others", "--exclude-standard"],
|
||||
cwd=repo, capture_output=True, text=True, check=True)
|
||||
disk = [f for f in proc.stdout.splitlines() if f]
|
||||
M = json.load(open(manifest))
|
||||
errs = []
|
||||
if M.get("total_untracked") != len(disk):
|
||||
errs.append("total_untracked %s != disk %d" % (M.get("total_untracked"), len(disk)))
|
||||
exp_counts = {}
|
||||
for f in disk:
|
||||
parts = f.split(os.sep)
|
||||
first = parts[0]
|
||||
if first == "docs":
|
||||
c = "doc"
|
||||
elif first == "wizard-outputs":
|
||||
c = "build"
|
||||
elif first in ("inbox", "recoveries", "checkins"):
|
||||
c = "dump"
|
||||
elif first == "wizard-work":
|
||||
sub = parts[1] if len(parts) > 1 else "repo"
|
||||
lm = {"null":"kit","sphinx":"archive","volt":"voltdir","sol":"sol",
|
||||
"forge":"forge","beam":"beam","quill":"beam","cassian":"beam",
|
||||
"spark":"beam","zeph":"check","ledger":"build","tmp":"dump"}
|
||||
c = lm.get(sub, "other")
|
||||
elif first in ("repo_tree.tsv","repo_files.tsv","repo_exts.tsv","s.json",
|
||||
"d.jsonl","kanban.db","test_sample.txt","test_verification.txt",
|
||||
"test_validation.txt","validate_artifact.py",
|
||||
"CHECK-triage-2026-10-29","CHECK-sol-untracked-classify",
|
||||
"CHECK-sol-triage-art-classify-2026-11-05.sh",
|
||||
"CHECK-2026-11-02-openmeteo-summary"):
|
||||
c = "check"
|
||||
else:
|
||||
c = "other"
|
||||
exp_counts[c] = exp_counts.get(c, 0) + 1
|
||||
if dict(M.get("category_counts", {})) != exp_counts:
|
||||
errs.append("category_counts committed=%s re-derived=%s"
|
||||
% (M.get("category_counts"), exp_counts))
|
||||
for rec in M.get("records", []):
|
||||
f = rec["path"]
|
||||
if not os.path.exists(os.path.join(repo, f)):
|
||||
errs.append("record not on disk: %s" % f)
|
||||
continue
|
||||
parts = f.split(os.sep)
|
||||
first = parts[0]
|
||||
c = check_classify(f)
|
||||
if rec["category"] != c:
|
||||
errs.append("category drift for %s: committed=%s re-derived=%s"
|
||||
% (f, rec["category"], c))
|
||||
if errs:
|
||||
print("FAIL", file=sys.stderr)
|
||||
for e in errs:
|
||||
print(" -", e, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print("PASS: %d untracked files; categories consistent with committed manifest %s"
|
||||
% (len(disk), json.dumps(exp_counts)))
|
||||
PY
|
||||
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python3
|
||||
"""CHECK -- sol: cron dispatch functional triage (2026-11-05).
|
||||
|
||||
Verdict: exit 0 iff (a) the committed artifact re-derives from the live
|
||||
/root/.hermes/cron directory via the generator, AND (b) independent
|
||||
ground truths hold on the live filesystem (file sizes, lock/db/jsonl counts,
|
||||
bash dispatch markers).
|
||||
|
||||
Exit code IS the verdict: 0 = correct, nonzero = wrong.
|
||||
"""
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
|
||||
HERE = "/root/.hermes/wizard-outputs/sol"
|
||||
GEN = HERE + "/gen_cron_dispatch_triage_2026_11_05.py"
|
||||
REQ = HERE + "/cron-dispatch-triage-2026-11-05.json"
|
||||
|
||||
fails = []
|
||||
|
||||
|
||||
def check(label, ok, detail=""):
|
||||
print("[%s] %s %s" % ("PASS" if ok else "FAIL", label, detail))
|
||||
if not ok:
|
||||
fails.append(label)
|
||||
|
||||
|
||||
# --- ground truths read straight from the live cron directory ---
|
||||
cron = "/root/.hermes/cron"
|
||||
locks = [f for f in os.listdir(cron) if f.endswith(".lock")]
|
||||
dbs = [f for f in os.listdir(cron) if f.endswith(".db")]
|
||||
jsonls = [f for f in os.listdir(cron) if f.endswith(".jsonl")]
|
||||
check("lock markers = 122", len(locks) == 122, "got %d" % len(locks))
|
||||
check("sqlite db = 3", len(dbs) == 3, "got %d" % len(dbs))
|
||||
check("jsonl telemetry = 2", len(jsonls) == 2, "got %d" % len(jsonls))
|
||||
|
||||
hou3 = open(cron + "/hou3-dispatch.sh", "rb").read(200)
|
||||
timmy = open(cron + "/timmy-dispatch.sh", "rb").read(200)
|
||||
check("hou3-dispatch.sh is bash", b"HERMES_HOME" in hou3)
|
||||
check("timmy-dispatch.sh is bash", b"PROFILE=timmy" in timmy)
|
||||
jobs = open(cron + "/jobs.json", "rb").read()
|
||||
check("jobs.json is a jq registry", b'"jobs"' in jobs and len(jobs) > 100000,
|
||||
"got %d bytes" % len(jobs))
|
||||
|
||||
# --- ground truth sizes (jobs.json is a live registry, rewritten by the
|
||||
# hourly pulse, so it is asserted structurally, not by fixed size) ---
|
||||
wanted_size = {
|
||||
cron + "/hou3-dispatch.sh": 103,
|
||||
cron + "/timmy-dispatch.sh": 125,
|
||||
cron + "/jobs.json.bak-career-lane-20261003T122655Z": 169956,
|
||||
cron + "/usage_audit.jsonl": 1382731,
|
||||
}
|
||||
for path, want in wanted_size.items():
|
||||
got = os.path.getsize(path)
|
||||
check("size %s" % path, got == want, "got %d want %d" % (got, want))
|
||||
|
||||
# --- re-derivation must reproduce the committed artifact ---
|
||||
cp = subprocess.run([sys.executable, GEN], capture_output=True, text=True)
|
||||
check("generator runs clean", cp.returncode == 0,
|
||||
cp.stderr.strip().splitlines()[-1] if cp.stderr.strip() else "")
|
||||
fresh = json.loads(cp.stdout)
|
||||
committed = json.load(open(REQ))
|
||||
n_fresh = len(fresh.get('records', []))
|
||||
n_comm = len(committed.get('records', []))
|
||||
check("regenerated == committed (deep-equal)",
|
||||
fresh == committed, "fresh=%d committed=%d" % (n_fresh, n_comm))
|
||||
|
||||
# --- per-file category spot-checks (independent of counts) ---
|
||||
by = {r["path"]: r for r in fresh["records"]}
|
||||
spot = {
|
||||
cron + "/hou3-dispatch.sh": "dispatcher:bash",
|
||||
cron + "/timmy-dispatch.sh": "dispatcher:bash",
|
||||
cron + "/jobs.json": "registry:json",
|
||||
cron + "/deliveries.db": "runtime-db",
|
||||
}
|
||||
for path, cat in spot.items():
|
||||
got = by.get(path, {}).get("category")
|
||||
check("category %s" % path, got == cat, "got %r" % got)
|
||||
|
||||
print("----")
|
||||
print("categories: %s" % sorted({r["category"] for r in fresh["records"]}))
|
||||
print("records=%d" % len(fresh.get('records', [])))
|
||||
sys.exit(1 if fails else 0)
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,45 @@
|
||||
# Cron dispatch triage — 2026-11-05 (sol)
|
||||
|
||||
Deterministic, evidence-driven functional classification of every regular file
|
||||
directly under `/root/.hermes/cron/`.
|
||||
|
||||
## Corpus
|
||||
|
||||
- **147 files** total: `122` fire/lock markers + `3` SQLite runtime DBs +
|
||||
`2` JSONL telemetry streams + **22** meaningful dispatch content files.
|
||||
- Classification is rule-based from **filename + shebang/markers + size +
|
||||
mtime**; there is no LLM judgement.
|
||||
|
||||
## Category counts
|
||||
|
||||
| category | count |
|
||||
|---:|---:|
|
||||
| fire-lock | 122 |
|
||||
| fleet:generator-script | 12 |
|
||||
| runtime-db | 3 |
|
||||
| dispatcher:bash | 2 |
|
||||
| state:flag | 4 |
|
||||
| registry:json | 2 |
|
||||
| telemetry:jsonl | 2 |
|
||||
| **total** | **147** |
|
||||
|
||||
## Notable records (evidence first line / size)
|
||||
|
||||
| path | category | evidence |
|
||||
|---|---|---|
|
||||
| `hou3-dispatch.sh` | dispatcher:bash | `#!/usr/bin/env bash` + `HERMES_HOME` export, 103 B |
|
||||
| `timmy-dispatch.sh` | dispatcher:bash | `#!/usr/bin/env bash` + `PROFILE=timmy`, 125 B |
|
||||
| `jobs.json` | registry:json | fleet job registry, 291 320 B |
|
||||
| `jobs.json.bak-career-lane-20261003T122655Z` | state:flag | legacy plain-text backup, 169 956 B |
|
||||
| `ticker_heartbeat` / `ticker_last_success` | state:flag | 26 B / 18 B heartbeat flags, 2026-11-05 |
|
||||
| `usage_audit.jsonl` | telemetry:jsonl | audit telemetry, 1 382 731 B |
|
||||
| `deliveries.db` / `executions.db` / `notepad.db` | runtime-db | SQLite blobs |
|
||||
|
||||
## Verdict
|
||||
|
||||
- `gen_cron_dispatch_triage_2026_11_05.py` — re-derives the classification
|
||||
(JSON records + TSV) from the live `/root/.hermes/cron` directory.
|
||||
- `check_cron_dispatch_triage_2026_11_05.py` — machine-checkable verdict:
|
||||
re-derivation must reproduce the committed artifact AND the independent
|
||||
ground truths (file sizes, lock/db/jsonl counts) must hold. **Exit code IS
|
||||
the verdict** (0 = correct, nonzero = wrong).
|
||||
@@ -0,0 +1,148 @@
|
||||
path category size mtime evidence
|
||||
/root/.hermes/cron/.fire-0001b0e33c385b299a91fb40d74c2e96.lock fire-lock 0 2026-09-07T18:00:28.817466Z
|
||||
/root/.hermes/cron/.fire-0323bab9d1845af1a1bef94aca43661d.lock fire-lock 0 2026-08-17T19:47:30.297791Z
|
||||
/root/.hermes/cron/.fire-03688f7e3757593aa708831368f8733f.lock fire-lock 0 2026-11-01T19:17:41.607429Z
|
||||
/root/.hermes/cron/.fire-03cfb0d44c7d59ec907b9236a52ff18b.lock fire-lock 0 2026-08-16T13:13:09.719649Z
|
||||
/root/.hermes/cron/.fire-08a5bb4437a95210bddb5dc5a2e08fec.lock fire-lock 0 2026-10-26T18:08:20.140890Z
|
||||
/root/.hermes/cron/.fire-0aff36533d4151a5ad0e509e157c7d30.lock fire-lock 0 2026-09-07T23:30:40.002374Z
|
||||
/root/.hermes/cron/.fire-0de1333a52a756bc9df2dd0375c6c588.lock fire-lock 0 2026-10-25T23:48:58.922101Z
|
||||
/root/.hermes/cron/.fire-0de533e75a835966adbaead5e84b3fe4.lock fire-lock 0 2026-09-08T01:00:46.038122Z
|
||||
/root/.hermes/cron/.fire-0f58f30e7b175e6c946e5a117078851d.lock fire-lock 0 2026-10-25T06:00:35.653517Z
|
||||
/root/.hermes/cron/.fire-0fc8c2f6c55b54eb8127f09d04159ab9.lock fire-lock 0 2026-08-15T22:48:58.352888Z
|
||||
/root/.hermes/cron/.fire-122fee6381945eccbc03d2d043d0be14.lock fire-lock 0 2026-10-15T15:06:12.598082Z
|
||||
/root/.hermes/cron/.fire-141b7f42a35c5b93baf6898fddda39ba.lock fire-lock 0 2026-10-15T02:30:44.000247Z
|
||||
/root/.hermes/cron/.fire-1ae6398af06c5e34970a38fd3ba7e95a.lock fire-lock 0 2026-10-08T17:22:18.047516Z
|
||||
/root/.hermes/cron/.fire-1b981fefcd2f5a50b2a077c3b07601ea.lock fire-lock 0 2026-10-19T21:03:12.564120Z
|
||||
/root/.hermes/cron/.fire-1dd43b8d92ad566ab8903fa16b638c63.lock fire-lock 0 2026-10-20T15:50:31.451341Z
|
||||
/root/.hermes/cron/.fire-23d58baf634d5ada8f1ad994525555cc.lock fire-lock 0 2026-08-22T04:17:33.127211Z
|
||||
/root/.hermes/cron/.fire-23f37b65153951aeaf0b240eef4af2fa.lock fire-lock 0 2026-08-24T17:00:58.564911Z
|
||||
/root/.hermes/cron/.fire-24d0d17dbc165bd4917303266124916c.lock fire-lock 0 2026-08-16T16:18:05.229621Z
|
||||
/root/.hermes/cron/.fire-264bf20bb526572b8e263db4e946f445.lock fire-lock 0 2026-10-27T22:53:16.839049Z
|
||||
/root/.hermes/cron/.fire-2856bd836ed85ab8a99af2dd04f70582.lock fire-lock 0 2026-10-11T17:48:17.429988Z
|
||||
/root/.hermes/cron/.fire-2867328473e65be6807e41a90c81aaef.lock fire-lock 0 2026-08-16T13:21:56.699499Z
|
||||
/root/.hermes/cron/.fire-2869a7d9e8ac5dc0a20cb7644af93c70.lock fire-lock 0 2026-08-27T03:38:11.934257Z
|
||||
/root/.hermes/cron/.fire-288434d231dd5485894b5629c60a9675.lock fire-lock 0 2026-10-15T01:00:44.102367Z
|
||||
/root/.hermes/cron/.fire-2988dfe9a34b5edcb7ad6af0bfa91a99.lock fire-lock 0 2026-10-25T23:43:57.704249Z
|
||||
/root/.hermes/cron/.fire-29b22e49fd2159edb0497dbdf489462c.lock fire-lock 0 2026-08-20T03:28:43.227112Z
|
||||
/root/.hermes/cron/.fire-2a0e16d1e5885c28a20620f0bb10ca84.lock fire-lock 0 2026-10-30T21:02:03.434983Z
|
||||
/root/.hermes/cron/.fire-2a74e07afbf55a6aacdd78ddd723f6a5.lock fire-lock 0 2026-09-21T16:34:50.642798Z
|
||||
/root/.hermes/cron/.fire-2c338fce371e55b7806e2aad230e2d40.lock fire-lock 0 2026-08-21T16:03:35.026011Z
|
||||
/root/.hermes/cron/.fire-2e2937026fae5b4193514c4e588bd950.lock fire-lock 0 2026-08-18T20:21:06.980102Z
|
||||
/root/.hermes/cron/.fire-2f2f2315ce9e5f1bb91259d9fff556d3.lock fire-lock 0 2026-10-30T20:26:02.465956Z
|
||||
/root/.hermes/cron/.fire-32ca5ee452ec5ea38a7a1ca2b5f7873a.lock fire-lock 0 2026-08-17T16:30:51.507465Z
|
||||
/root/.hermes/cron/.fire-34a471e14bbe57ee94a26b698b4fbfd6.lock fire-lock 0 2026-08-15T22:48:58.320888Z
|
||||
/root/.hermes/cron/.fire-36b42e3d3f4858089e07dc000e834e99.lock fire-lock 0 2026-08-16T03:35:32.847927Z
|
||||
/root/.hermes/cron/.fire-38ababfff0655620a0313a79c2b2deeb.lock fire-lock 0 2026-08-22T05:42:03.713916Z
|
||||
/root/.hermes/cron/.fire-39440cb8d75753cbb2bd928d0d0d3789.lock fire-lock 0 2026-09-08T10:30:46.570147Z
|
||||
/root/.hermes/cron/.fire-3a6f1598ed80544fb5ecb6c534f78a96.lock fire-lock 0 2026-10-07T08:00:41.396358Z
|
||||
/root/.hermes/cron/.fire-3c822a110a065fa6897dfaee29ed9572.lock fire-lock 0 2026-10-21T14:35:30.958740Z
|
||||
/root/.hermes/cron/.fire-3cec228f44e758f7b3b2d9e8ba09a899.lock fire-lock 0 2026-08-19T12:04:40.796054Z
|
||||
/root/.hermes/cron/.fire-3d93d5434a825a64b7c8e0b9dc03d743.lock fire-lock 0 2026-09-09T22:30:04.975973Z
|
||||
/root/.hermes/cron/.fire-3e501a2032cf577db6a59ce7c1d5d6fe.lock fire-lock 0 2026-09-08T12:00:53.601268Z
|
||||
/root/.hermes/cron/.fire-3f27047716235dfea6e07a1d6cf7e9dd.lock fire-lock 0 2026-08-31T21:56:25.077873Z
|
||||
/root/.hermes/cron/.fire-3fc9bd8c76055797a37e9187d5ad7c18.lock fire-lock 0 2026-10-28T19:50:33.264678Z
|
||||
/root/.hermes/cron/.fire-466fd592644c58b5b013008ca3cff16f.lock fire-lock 0 2026-10-26T21:56:43.229321Z
|
||||
/root/.hermes/cron/.fire-471506ee0f89583ca88551f59a477262.lock fire-lock 0 2026-09-09T18:24:08.224807Z
|
||||
/root/.hermes/cron/.fire-4bdfd34b01e558b392cc3aa76ff3a9f2.lock fire-lock 0 2026-10-21T10:05:11.894606Z
|
||||
/root/.hermes/cron/.fire-4e81cbdcbf6353c0bfbad46d6441160c.lock fire-lock 0 2026-08-17T22:06:10.685934Z
|
||||
/root/.hermes/cron/.fire-55c36b5662af5f448824232ae1dff1fa.lock fire-lock 0 2026-10-23T22:32:35.514363Z
|
||||
/root/.hermes/cron/.fire-56fd18bf7458568887f0bca1fddc84d1.lock fire-lock 0 2026-10-06T19:04:15.193268Z
|
||||
/root/.hermes/cron/.fire-5797477d811e57b989593b61e2fd85a5.lock fire-lock 0 2026-08-16T10:19:58.281314Z
|
||||
/root/.hermes/cron/.fire-579f9e07a76151fab647a0e4c3805875.lock fire-lock 0 2026-10-06T14:28:43.544312Z
|
||||
/root/.hermes/cron/.fire-58f35a45e6435315a23dc154478591f3.lock fire-lock 0 2026-08-16T03:00:11.282259Z
|
||||
/root/.hermes/cron/.fire-592a958fa7cf5be1a31af62f3c30552d.lock fire-lock 0 2026-08-29T23:06:30.413351Z
|
||||
/root/.hermes/cron/.fire-5b9aac5000d958e68c0375a23cfab1d1.lock fire-lock 0 2026-09-08T15:00:07.283268Z
|
||||
/root/.hermes/cron/.fire-5f275d23d55d5051ab0ccd06ea3e5b03.lock fire-lock 0 2026-09-21T13:00:37.222996Z
|
||||
/root/.hermes/cron/.fire-64a9310df6a35bfc8647085a7b9a7670.lock fire-lock 0 2026-10-11T09:00:49.328872Z
|
||||
/root/.hermes/cron/.fire-655f1472f6a4595e895c73c1534874d3.lock fire-lock 0 2026-10-26T09:00:30.925583Z
|
||||
/root/.hermes/cron/.fire-65af43c0589956f8ae0cd0c34765654f.lock fire-lock 0 2026-11-03T07:28:21.639739Z
|
||||
/root/.hermes/cron/.fire-65e180041f7c56569d785cbaea4ccc0c.lock fire-lock 0 2026-08-21T16:03:34.133998Z
|
||||
/root/.hermes/cron/.fire-6800a940e7985f5596a75bc8d96d423d.lock fire-lock 0 2026-08-16T00:02:52.599334Z
|
||||
/root/.hermes/cron/.fire-726e056a4b5857458e2921e2f2da24e1.lock fire-lock 0 2026-08-16T17:30:10.705051Z
|
||||
/root/.hermes/cron/.fire-7343f24074cf506aac65565771510284.lock fire-lock 0 2026-09-19T15:00:27.593305Z
|
||||
/root/.hermes/cron/.fire-7389adb7e4085994ab4123384317701e.lock fire-lock 0 2026-08-16T10:00:50.669431Z
|
||||
/root/.hermes/cron/.fire-75bad1bd48075e1691d21e6b604d2e6c.lock fire-lock 0 2026-10-19T23:00:14.993048Z
|
||||
/root/.hermes/cron/.fire-75eeed6d59e25659ad0a507c6359c520.lock fire-lock 0 2026-08-16T12:30:54.883659Z
|
||||
/root/.hermes/cron/.fire-76a0ead635375fee93a2667ac73c7985.lock fire-lock 0 2026-08-19T08:04:05.398636Z
|
||||
/root/.hermes/cron/.fire-7a68f6eefc7e59f9a122a3d40ad65eca.lock fire-lock 0 2026-08-21T16:15:36.156775Z
|
||||
/root/.hermes/cron/.fire-7af262b44c1854cfa780975d3dc88908.lock fire-lock 0 2026-08-21T17:22:49.007404Z
|
||||
/root/.hermes/cron/.fire-7b0bee7710775c5faca367abd98a7677.lock fire-lock 0 2026-08-15T22:51:52.421484Z
|
||||
/root/.hermes/cron/.fire-7b5510507af75d7392f8c7d47d7ad565.lock fire-lock 0 2026-10-15T07:10:44.054225Z
|
||||
/root/.hermes/cron/.fire-7bb27143bd6958568e63f07dd7a4bb09.lock fire-lock 0 2026-09-05T00:00:17.601251Z
|
||||
/root/.hermes/cron/.fire-7e2ee6c057905e0dbae0221b1d8231fd.lock fire-lock 0 2026-08-16T17:05:18.393830Z
|
||||
/root/.hermes/cron/.fire-8039e663eed259fa87a843f058b0d048.lock fire-lock 0 2026-10-15T07:00:43.985650Z
|
||||
/root/.hermes/cron/.fire-856eb7422cb85246a974095574782be4.lock fire-lock 0 2026-10-14T13:20:18.661136Z
|
||||
/root/.hermes/cron/.fire-8b59ba6fa1f45a4d81edfe0a21a28ef4.lock fire-lock 0 2026-08-16T15:23:04.045080Z
|
||||
/root/.hermes/cron/.fire-9050e82789dd5575856fc4e8da21af92.lock fire-lock 0 2026-11-02T22:00:31.538405Z
|
||||
/root/.hermes/cron/.fire-96976abb4ec25bacb6579bed7a90fd7d.lock fire-lock 0 2026-09-07T21:00:43.606696Z
|
||||
/root/.hermes/cron/.fire-98d85e3618e35ccb991005062781e109.lock fire-lock 0 2026-10-18T09:00:12.692216Z
|
||||
/root/.hermes/cron/.fire-990b5e8295d4500e885fe2d65f4126f8.lock fire-lock 0 2026-08-15T23:00:00.467575Z
|
||||
/root/.hermes/cron/.fire-9952a7c9bd635f9cabe4855534d69194.lock fire-lock 0 2026-10-07T00:53:41.654236Z
|
||||
/root/.hermes/cron/.fire-99e9569d60485858b2ca8aea0e39527f.lock fire-lock 0 2026-08-16T14:00:02.826428Z
|
||||
/root/.hermes/cron/.fire-9a2c59122ceb53cda096e7ebd96ed1d4.lock fire-lock 0 2026-09-29T19:12:51.244371Z
|
||||
/root/.hermes/cron/.fire-9f338a204d09540e9dc23ac50fc4912b.lock fire-lock 0 2026-08-25T10:36:36.182157Z
|
||||
/root/.hermes/cron/.fire-9fff3e4daa70553fbad7f44da65074c1.lock fire-lock 0 2026-09-24T11:06:44.406806Z
|
||||
/root/.hermes/cron/.fire-a344cf26b8c35989ae86c6ce7f2b876e.lock fire-lock 0 2026-09-05T21:00:54.181499Z
|
||||
/root/.hermes/cron/.fire-a4901810e7185eff8e74f84adc102e2f.lock fire-lock 0 2026-08-21T16:12:36.601095Z
|
||||
/root/.hermes/cron/.fire-a631ed8762db5ef498503fbd64b468d6.lock fire-lock 0 2026-08-30T14:09:35.783937Z
|
||||
/root/.hermes/cron/.fire-a63b27b8a71950529832b6e591f5dc01.lock fire-lock 0 2026-08-16T11:16:53.059361Z
|
||||
/root/.hermes/cron/.fire-a8cb8759e1105f9e98ce8fc8b36f147b.lock fire-lock 0 2026-08-20T13:49:55.493082Z
|
||||
/root/.hermes/cron/.fire-ab60c03313ff530fa17fec4e784db9cf.lock fire-lock 0 2026-10-16T02:57:12.453959Z
|
||||
/root/.hermes/cron/.fire-ada8a651a8dd5e36a41f0b411d0af4cb.lock fire-lock 0 2026-08-18T20:21:40.854501Z
|
||||
/root/.hermes/cron/.fire-aeae431e0a7f587b90246aae2e8629b8.lock fire-lock 0 2026-10-12T09:00:20.424005Z
|
||||
/root/.hermes/cron/.fire-b12c3ebb20cb5aadbdce58afe0f2fa83.lock fire-lock 0 2026-10-16T01:03:12.605608Z
|
||||
/root/.hermes/cron/.fire-b34abea4711a5b8c8141b4f0918594c6.lock fire-lock 0 2026-10-28T21:04:33.041299Z
|
||||
/root/.hermes/cron/.fire-b5cf7d09f3855470a43be85f26696bd6.lock fire-lock 0 2026-10-15T04:00:44.044649Z
|
||||
/root/.hermes/cron/.fire-b68af7975ad550de8c7e78a6a254579a.lock fire-lock 0 2026-10-30T20:59:04.675986Z
|
||||
/root/.hermes/cron/.fire-bb45e09305d050f6bfc4acc4be0920d2.lock fire-lock 0 2026-08-16T14:36:33.290731Z
|
||||
/root/.hermes/cron/.fire-bc1c7e23366156f39f8e0b7164994290.lock fire-lock 0 2026-08-16T02:15:25.431687Z
|
||||
/root/.hermes/cron/.fire-bf825eda14165625b4fd3b8729932f65.lock fire-lock 0 2026-08-15T23:03:20.770635Z
|
||||
/root/.hermes/cron/.fire-bfeb8e7d370e5a4fac62394a8b13aba8.lock fire-lock 0 2026-11-02T00:23:43.924866Z
|
||||
/root/.hermes/cron/.fire-c65c048ed9195d25a80d1abcb5c868e3.lock fire-lock 0 2026-10-16T22:11:14.582471Z
|
||||
/root/.hermes/cron/.fire-c8f276c93c41572c83c2703499f0450c.lock fire-lock 0 2026-08-16T21:38:21.687324Z
|
||||
/root/.hermes/cron/.fire-cd26ae9efb125c2e9f29e3b362a10aba.lock fire-lock 0 2026-08-16T16:16:11.706126Z
|
||||
/root/.hermes/cron/.fire-cd76ec02cb6a5fd693935659376568b3.lock fire-lock 0 2026-09-09T15:30:07.013245Z
|
||||
/root/.hermes/cron/.fire-ce6cfaa26ad55db891adc428b1b893fe.lock fire-lock 0 2026-09-23T02:10:51.283748Z
|
||||
/root/.hermes/cron/.fire-d4590ff193a45dcbba30cb36ec156093.lock fire-lock 0 2026-08-21T02:36:36.867571Z
|
||||
/root/.hermes/cron/.fire-d5e2c718b0a356df8f159d5cc0d50778.lock fire-lock 0 2026-08-22T05:33:22.544233Z
|
||||
/root/.hermes/cron/.fire-d715b896dd5e54dfb76741c725f762a1.lock fire-lock 0 2026-08-20T15:43:36.850451Z
|
||||
/root/.hermes/cron/.fire-d7b8359b696859d8906ea8fe1589a9d7.lock fire-lock 0 2026-10-15T05:30:44.119752Z
|
||||
/root/.hermes/cron/.fire-e578b406bf39533bab465e57665e2eeb.lock fire-lock 0 2026-08-15T22:49:22.162207Z
|
||||
/root/.hermes/cron/.fire-e617106fa3f659e59706b01392e4a908.lock fire-lock 0 2026-08-15T23:15:03.196867Z
|
||||
/root/.hermes/cron/.fire-e6c4ba068fc252139e4d97a2c50b097e.lock fire-lock 0 2026-10-27T09:00:59.153777Z
|
||||
/root/.hermes/cron/.fire-e7cb97f558575065b670bfaff8d2c19e.lock fire-lock 0 2026-10-28T20:35:32.947779Z
|
||||
/root/.hermes/cron/.fire-ee623bd7ceb65cedbeda6488f7450ec7.lock fire-lock 0 2026-08-16T15:27:31.857787Z
|
||||
/root/.hermes/cron/.fire-f0ddfe4e02b65be2a0e9bfa2e4f6cb1f.lock fire-lock 0 2026-10-11T15:00:36.686330Z
|
||||
/root/.hermes/cron/.fire-f13d5d04dd30529db698a05ad5b242cd.lock fire-lock 0 2026-09-21T11:18:28.360255Z
|
||||
/root/.hermes/cron/.fire-f37ae47f970e5725ad0c6be3171917e1.lock fire-lock 0 2026-08-16T05:16:20.820367Z
|
||||
/root/.hermes/cron/.fire-f4ce153e3b0a59acb1de02af7a30aac1.lock fire-lock 0 2026-08-17T16:30:51.447464Z
|
||||
/root/.hermes/cron/.fire-fb1e7c2d220759ad96a7ce9e9fe48689.lock fire-lock 0 2026-10-24T14:00:35.698747Z
|
||||
/root/.hermes/cron/.fire-fd62821d67c65c2ea337926a554d28e8.lock fire-lock 0 2026-10-11T12:00:15.632897Z
|
||||
/root/.hermes/cron/.fire-fdeadb5a82135987950d474a61c321b2.lock fire-lock 0 2026-08-16T10:30:51.526545Z
|
||||
/root/.hermes/cron/.jobs.lock fire-lock 0 2026-07-06T18:18:05.354081Z
|
||||
/root/.hermes/cron/.tick.lock fire-lock 0 2026-11-05T11:05:51.628875Z
|
||||
/root/.hermes/cron/analyze_triage.py fleet:generator-script 3458 2026-10-18T15:48:46.122573Z import json, datetime jobs_path = '/root/.hermes/cron/jobs.json' with open(jobs_path) as f: data = json.load(f) job
|
||||
/root/.hermes/cron/build_triage.py fleet:generator-script 6132 2026-10-18T15:54:05.892969Z import json, datetime, os jobs_path = '/root/.hermes/cron/jobs.json' with open(jobs_path) as f: data = json.load(f)
|
||||
/root/.hermes/cron/catch_up_occurrences state:flag 3 2026-11-04T22:28:57.106235Z 272
|
||||
/root/.hermes/cron/check_facts.py fleet:generator-script 338 2026-10-18T15:52:28.291915Z import json f = json.load(open('/root/.hermes/wizard-outputs/sol/cron-fleet-triage-2026-10-18.facts.json')) print('facts
|
||||
/root/.hermes/cron/debug_enabled.py fleet:generator-script 910 2026-10-18T01:23:59.771041Z import json, datetime data = json.load(open('/root/.hermes/wizard-outputs/sol/jobs-snapshot-2026-10-18.json')) now = dat
|
||||
/root/.hermes/cron/deliveries.db runtime-db 671744 2026-11-05T11:00:02.598846Z SQLite format 3 | ||||